- 1 1. Utangulizi
- 2 2. Mahitaji ya Awali na Maandalizi
- 3 3. Installing Docker
- 4 4. Ruhusa za Mtumiaji na Kuendesha Docker Bila sudo
- 5 5. Uthibitishaji wa Kuanzisha na Uendeshaji
- 6 6. Kusakinisha na Kutumia Docker Compose
- 7 7. Usalama na Mambo ya Kijamii ya Uendeshaji
- 7.1 7-1. Kikundi cha docker Kina Haki za “Root” Kawaida
- 7.2 ● Vidokezo Muhimu vya Kuzingatia
- 7.3 7-2. Kuzingatia Docker Isiyo na Root (Chaguo la Juu)
- 7.4 7-3. Kusafisha Picha na Kontena Zisizotumika
- 7.5 7-4. Epuka Kutumia Lebo “latest” katika Uzalishaji
- 7.6 7-5. Tumia Picha za Msingi Rasmi katika Dockerfiles
- 7.7 7-6. Kuwa Makini na Ufafanuzi wa Mtandao na Bandari
- 7.8 7-7. Usimamizi wa Logi Wakati wa Hitilafu
- 8 8. Masuala ya Kawaida na Utatuzi wa Tatizo
1. Utangulizi
Unapoweka mazingira ya maendeleo kwenye Ubuntu, hali ambapo unafikiri “tukane tu tuwe na Docker kwa sasa” zimekuwa za kawaida zaidi. Programu za wavuti, usindikaji wa batch, hifadhidata za majaribio, middleware za majaribio… Ikiwa unaweka hizi kwa mkono kila wakati, muda mwingi na jitihada nyingi hutumika tu kwa ajili ya kuanzisha mazingira.
Hapa ndipo teknolojia ya uhalisia wa kontena Docker inakuwa na manufaa makubwa. Kwa Docker, unaweza kusimamia si tu programu yenyewe bali pia maktaba zote zinazohitajika na usanidi pamoja kama “picha”. Mara Docker inapowekwa kwenye Ubuntu, unaweza kwa urahisi:
- Zindua mazingira mapya ya maendeleo katika dakika chache
- Hakikisha washiriki wote wa timu wanaweza kurudia tabia katika mazingira yale yale
- Tengeneza upya usanidi unaofanana na uzalishaji ndani ya eneo lako kwa urahisi
Manufaa haya yanaweza kufurahiwa kwa jitihada ndogo.
Kwa upande mwingine, kwa wale wanaotumia Docker kwa mara ya kwanza, kuna vizingiti vingi vya kawaida:
- Kutokujua ni taratibu gani za usakinishaji halali
- Kutokuelewa tofauti kati ya hazina ya chaguo-msingi ya Ubuntu na hazina rasmi ya Docker
- Kukutana na makosa ya ruhusa kutokana na kuchanganyikiwa kuhusu lini kutumia
sudo
Unapojaribu kutafuta “ubuntu install docker,” utapata makala nyingi yanazoorodhesha mfuatano mrefu wa amri, lakini mara nyingi hazielezi kwa nini hatua hizo ni muhimu au ni nini kinachoashiria usakinishaji kamili.
1-1. Lengo la Makala Hii
Makala hii imekusudiwa kwa wasomaji wanaotaka kusakinisha Docker kwenye Ubuntu, na inashughulikia mambo yafuatayo muhimu:
- Taratibu ya kawaida ya sasa ya kusakinisha Docker kwenye Ubuntu
- Njia rahisi zaidi ya usakinishaji kwa kutumia hazina rasmi
- Jinsi ya kuendesha amri ya
dockerbilasudo - Uthibitishaji baada ya usakinishaji na amri za msingi muhimu
- Utangulizi wa zana zinazotumika sana kama Docker Compose
Badala ya kuorodhesha amri tu, mwongozo huu unaelezea kwa nini kila hatua ni muhimu, ikikusaidia kudumisha mazingira yako kwa urahisi zaidi katika siku zijazo.
1-2. Wasikilizaji Lengwa na Mahitaji ya Awali
Makala hii imekusudiwa kwa wasomaji ambao:
- Wanaelewa shughuli za msingi za Ubuntu (kufungua terminal, kutumia amri ya
apt, n.k.) - Ni watengenezaji au wahandisi wanaotamani kujaribu Docker kwa mara ya kwanza
- Wanapanga kuhamisha mazingira ya majaribio yaliyopo kwenda kwenye kontena
Ujuzi wa hali ya juu wa usimamizi wa Linux hauhitajiki. Mradi tu una uhakika wa kuandika amri kwenye terminal, mwongozo huu utatosha.
1-3. Muundo wa Makala na Jinsi ya Kuisoma
Makala hii inaendelea kwa mpangilio ufuatao:
- Kukagua mahitaji ya awali
- Njia za usakinishaji (hazina rasmi / kulingana na script)
- Mipangilio ya ruhusa na uthibitishaji
- Kusakinisha Docker Compose
- Utatua matatizo na hatua zinazofuata
Unaweza kusoma makala kutoka mwanzo hadi mwisho, au ikiwa Docker tayari imewekwa, unaweza kuzingatia tu sehemu za “Ruhusa” au “Compose”.
2. Mahitaji ya Awali na Maandalizi
Kusakinisha Docker yenyewe ni rahisi kiasi, lakini kulingana na toleo lako la Ubuntu au mazingira yaliyopo, kuna mambo kadhaa yanayostahili kukaguliwa mapema. Sehemu hii inahitimisha mahitaji ya awali na maandalizi yanayohitajika kwa usakinishaji laini.
2-1. Matoleo ya Ubuntu Yanayoungwa Mkono
Docker inafanya kazi kwenye matoleo mengi ya Ubuntu, lakini matoleo yafuatayo ya LTS ndiyo yanayotumika zaidi:
- Ubuntu 22.04 LTS (Recommended)
- Ubuntu 20.04 LTS
- Ubuntu 24.04 LTS (Latest)
Matoleo ya LTS (Long Term Support) yanatoa uthabiti wa muda mrefu, na kuyafanya kuwa bora kwa kudumisha mazingira ya maendeleo yanayotegemea Docker.
Matoleo yasiyo ya LTS (kama 23.10) pia yanaweza kutumika, lakini matoleo ya LTS kwa ujumla yanapendekezwa katika mazingira ya kitaalamu.
2-2. Pakiti za Docker Zilizowekwa Awali
Ubuntu’s default repository includes a package called docker.io. However, this is not the official Docker package provided by Docker Inc., and updates tend to lag behind. Therefore, installing Docker from the official repository is strongly recommended.
First, check and remove any existing Docker-related packages if necessary:
sudo apt remove docker docker.io containerd runc
If the message indicates that nothing is installed, no action is required.
2-3. Updating APT and Installing Required Packages
Before adding Docker’s official repository, update APT and install required tools:
sudo apt update
sudo apt install -y ca-certificates curl gnupg
These tools are required to add Docker’s GPG key and repository securely.
2-4. Verifying Administrator Privileges (sudo)
Docker installation requires sudo privileges. If your account does not have sudo access, switch to an administrator account or request permission.
You can verify sudo access with the following command:
sudo -v
If you are prompted for a password and the command succeeds, you are ready to proceed.
2-5. Checking Network Connectivity
Installing Docker requires access to external repositories, so an active internet connection is mandatory. In corporate or proxy environments, GPG key retrieval may fail due to access restrictions.
In such cases, consult your network administrator regarding proxy settings or allowlist configurations.
2-6. Choosing the Installation Method
There are three main ways to install Docker:
- Install via the official Docker repository (Recommended)
- Use the
get.docker.cominstallation script (Quick and easy) - Manually download and install Docker .deb packages (Special cases)
This article focuses primarily on the official repository method, which is the most common and easiest to maintain.
3. Installing Docker
Now let’s install Docker on Ubuntu. Although multiple installation methods exist, this guide focuses on the official Docker repository method, which is the most reliable and widely used in production environments.
This method allows stable upgrades via apt upgrade, making it ideal for long-term use.
3-1. Adding the Official Docker Repository (Recommended)
First, register the official GPG key provided by Docker and add Docker’s repository to APT.
Once this is configured correctly, you can avoid accidentally installing the outdated docker.io package from Ubuntu’s default repository.
3-1-1. Registering the GPG Key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
/etc/apt/keyrings/is the recommended key storage location for Ubuntu 22.04 and later--dearmorconverts the key into binary format
This step allows APT to trust the official Docker repository.
3-1-2. Adding the Repository
Next, add Docker’s repository to APT’s source list.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Key points:
$(. /etc/os-release && echo $VERSION_CODENAME)automatically inserts the correct Ubuntu codename (such asjammyorfocal)- Only the stable repository is added
3-1-3. Updating Repository Information
After adding the repository, update the APT index.
sudo apt update
At this point, docker-ce (Docker Engine) should appear as an installable package.
3-2. Installing Docker Engine
Now install the main Docker packages.
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Package roles:
- docker-ce : Msingi wa Docker Engine
- docker-ce-cli : Kiolesura cha amri ya Docker
- containerd.io : Msingi wa muda wa kontena unaotumika na Docker
- docker-buildx-plugin : Vipengele vya ujenzi vya hali ya juu kama ujenzi wa majukwaa mengi
- docker-compose-plugin : Docker Compose V2 (amri
docker compose)
Baada ya usakinishaji, daemon ya Docker huanza kiotomatiki.
3-3. Kuhakikisha Usakinishaji
Angalia hali ya muda wa Docker kwa amri ifuatayo:
sudo systemctl status docker
Ikiwa unaona active (running), Docker inafanya kazi kwa usahihi.
Bofya q kuondoka kwenye maoni ya hali.
3-4. Hiari: Usakinishaji wa Skripti kwa Rahisi
Docker pia inatoa skripti ya usakinishaji ya kila kitu pamoja.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Faida:
- Amri chache na usanidi wa haraka
- Inafaa kwa mazingira rahisi au ya muda mfupi
Hasara:
- Udhibiti mgumu wa matoleo
- Mara nyingi haipendekezwi kwa uzalishaji au matumizi ya muda mrefu
Ingawa ni rahisi kwa wanaoanza, makala hii inapa kipaumbele kwa uratibu na hivyo inazingatia njia ya hazina rasmi.
3-5. Maelezo kwa Matoleo ya Hivi Karibuni ya Ubuntu (kwa mfano, 24.04)
Mara tu baada ya toleo kuu la Ubuntu, hazina rasmi ya Docker huenda bado isiweze kusaidia toleo jipya kikamilifu.
Katika hali hizo, thibitisha yafuatayo:
- Kwamba eneo na muundo wa ufunguo wa GPG vinakidhi viwango vya sasa
- Kwamba
VERSION_CODENAMEimeungwa mkono rasmi - Kwamba hakuna makosa ya sahihi yanayotokea wakati wa
apt update
Ikiwa usaidizi uchelewa, kutumia kwa muda skripti ya get.docker.com inaweza kuwa suluhisho la kiutendaji.
4. Ruhusa za Mtumiaji na Kuendesha Docker Bila sudo
Baada ya kusakinisha Docker, unaweza kutaka kuanza kutumia amri ya docker mara moja. Hata hivyo, kwa chaguo‑msingi, lazima uanze kila amri na sudo.
Tabia hii imekusudiwa kwa sababu za usalama, lakini haifai kwa maendeleo ya kila siku au kujifunza. Ili kutatua hili, unaweza kuongeza mtumiaji wako kwenye kikundi cha docker, kuruhusu amri za Docker kutekelezwa bila sudo.
4-1. Kwa Nini Kuendesha Bila sudo Inahusu
Katika Ubuntu, daemon ya Docker (dockerd) inaendesha kwa ruhusa za root.
Kwa hiyo, kuunda au kuondoa kontena kupitia amri ya docker kawaida inahitaji ufikia wa root.
Kikundi cha docker kipo ili kushughulikia hitaji hili.
- Watumiaji katika kikundi hiki wanaweza kupata moja kwa moja daemon ya Docker
- Hii inaruhusu amri kama
docker runbilasudo - Mpangilio huu ni karibu muhimu kwa matumizi ya maendeleo
Kumbuka kwamba kikundi cha docker kinaruhusu ruhusa karibu na root, hivyo tahadhari inahitajika katika mazingira yanayoshirikiwa.
(Kwa kompyuta binafsi au WSL2, hii kwa kawaida si tatizo.)
4-2. Kuongeza Mtumiaji Wako kwenye Kikundi cha docker
Ongeza mtumiaji aliyeingia kwa sasa kwenye kikundi cha docker:
sudo usermod -aG docker $USER
Amri hii inaongeza mtumiaji kwenye kikundi. Chaguo -aG inamaanisha ongeza kwenye kikundi.
4-3. Kutumia Mabadiliko
Mabadiliko ya uanachama wa kikundi yatafaa baada ya kutoka na kuingia tena.
Ili kutumia mabadiliko mara moja, unaweza pia kuendesha:
newgrp docker
Hii inaanzisha kikao kipya cha shell na ruhusa za kikundi cha docker zimetumika.
4-4. Kuhakikisha Utekelezaji Bila sudo
Sasa jaribu Docker bila sudo:
docker run hello-world
Matokeo yenye mafanikio:
- Hello from Docker!
- Picha imepakuliwa na ujumbe umeonyeshwa
Ikiwa hitilafu itatokea, angalia yafuatayo:
- Je, umeondoka na kuingia tena baada ya kubadilisha uanachama wa kikundi?
- Je,
/usr/bin/dockerinatumiwa? - Je, daemon ya Docker inaendesha (
systemctl status docker)?
4-5. Mambo ya Usalama (Muhimu)
Kikundi cha docker kinatoa ruhusa zenye nguvu ambazo kwa vitendo ni sawa na ufikiaji wa root.
- Kusoma faili yoyote
- Kuweka saraka za mwenyeji ndani ya kontena
- Kufanya shughuli za mtandao
- Udhibiti wa ngazi ya mfumo kupitia soketi ya Docker
This is acceptable for personal systems, but user management is critical on shared servers.
In such cases, you may consider rootless Docker, which is discussed in later sections.
5. Uthibitishaji wa Kuanzisha na Uendeshaji
Once Docker installation and permission configuration are complete, the next step is to verify that Docker operates correctly.
This section explains how to check the Docker service status and actually run containers.
5-1. Kuangalia Hali ya Daemon ya Docker
First, verify that Docker is running correctly in the background.
sudo systemctl status docker
Key status indicators:
- active (running) → Operating normally
- inactive → Not running (must be started manually)
- failed → Configuration or dependency error
If the status is inactive or failed, start Docker with the following command:
sudo systemctl start docker
To ensure Docker starts automatically when the OS boots:
sudo systemctl enable docker
5-2. Kuthibitisha Uendeshaji kwa Kontena ya hello-world
The most common way to verify Docker installation is by running the official hello-world image.
docker run hello-world
This command performs the following actions:
- Downloads the image from Docker Hub if it is not present locally
- Starts a container from the image
- Displays a test message and exits
If successful, you will see output similar to the following:
Hello from Docker!
This message shows that your installation appears to be working correctly.
If this message appears, Docker is installed and functioning correctly.
5-3. Kujaribu Amri za Msingi za Docker
Once basic operation is confirmed, try some commonly used Docker commands.
5-3-1. Orodha ya Picha za Docker
docker images
This displays a list of images downloaded locally. If hello-world appears, everything is working as expected.
5-3-2. Kuangalia Kontena Zinazoendesha
docker ps
This command lists currently running containers.
(The hello-world container exits immediately and will not usually appear.)
To display stopped containers as well:
docker ps -a
5-3-3. Kuendesha Mfano wa Picha Rasmi
To try a simple Nginx web server:
docker run -d -p 8080:80 nginx
-d→ Run in the background-p→ Map host port 8080 to container port 80
Open http://localhost:8080 in your browser to see the default Nginx page.
5-4. Kusitisha na Kuondoa Kontena
You can stop a running container using the following command:
docker stop <container-id>
To remove a container:
docker rm <container-id>
To remove unused images:
docker rmi <image-id>
Remember that dependencies follow the order container → image → volume, so remove them carefully.
5-5. Sababu za Kawaida za Hitilafu
● Hitilafu za Ruhusa
Got permission denied while trying to connect to the Docker daemon socket
→ The user is not added to the docker group
● Daemon ya Docker Haiko Inayotumika
Cannot connect to the Docker daemon at unix:///var/run/docker.sock
→ Start Docker with systemctl start docker
● Masuala ya Mtandao Yanayozuia Upakuaji wa Picha
→ Check proxy settings, DNS configuration, or network restrictions
● Kifurushi cha urithi docker.io Bado Kimewekwa
→ Uninstall it completely and reinstall Docker from the official repository
6. Kusakinisha na Kutumia Docker Compose
One essential tool for working with Docker at scale is Docker Compose.
Modern web applications often consist of multiple components such as databases, caches, workers, and web servers. Managing these individually with docker run commands quickly becomes impractical.
Docker Compose allows you to define multiple container configurations in a single file and manage them together, making it one of the most commonly used tools in real‑world development.
.### 6-1. Kuthibitisha Usakinishaji wa Docker Compose V2
Unapokuweka Docker kutoka kwenye hazina rasmi, Docker Compose inasanikishwa kiotomatiki kama kiendelezi.
Thibitisha usakinishaji kwa amri ifuatayo:
docker compose version
Kama imewekwa kwa usahihi, unapaswa kuona matokeo yanayofanana na:
Docker Compose version v2.x.x
Kama utaona kosa kama docker: 'compose' is not a docker command, sakinisha kiendelezi kwa mikono:
sudo apt install docker-compose-plugin
6-2. Manufaa ya Docker Compose
Manufaa muhimu ya Docker Compose ni pamoja na:
- Usimamizi mmoja wa kontena nyingi (anzisha, simamisha, anzisha upya)
- Usanidi kama msimbo, kuhakikisha mazingira yanayoweza kurudiwa
- Kushiriki kwa urahisi usanidi wa programu, API, na hifadhidata
- Kuanza mazingira ya maendeleo kwa
docker compose upmoja
Hii inafanya Docker Compose kuwa karibu isiyoweza kuachwa katika maendeleo ya programu.
6-3. Muundo wa Msingi wa Faili la Usanidi la Compose
Docker Compose hutumia faili inayoitwa docker-compose.yml (au compose.yaml) kufafanua huduma.
Kama mfano mdogo, unda usanidi rahisi unaoanzisha Nginx.
services:
web:
image: nginx:latest
ports:
- "8080:80"
Endesha amri ifuatayo katika saraka iliyo na faili:
docker compose up -d
Nginx itaanza katika usuli. Fungua http://localhost:8080 kwenye kivinjari chako kuthibitisha.
6-4. Mfano: Usanidi wa Kontena Nyingi (Wavuti + Hifadhidata)
Nguvu halisi ya Compose inaonekana unaposhughulikia kontena nyingi kwa wakati mmoja.
Kwa mfano, kuendesha programu ya wavuti pamoja na MySQL inaweza kusanidiwa kama ifuatayo:
services:
app:
build: .
ports:
- "3000:3000"
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
Ufafanuzi:
depends_oninahakikisha hifadhidata inaanza kabla ya programuvolumeshuhifadhi data ya hifadhidata- Huduma nyingi husimamiwa ndani ya faili moja ya YAML
Huu ni muundo wa kiutendaji sana kwa mazingira ya maendeleo.
6-5. Amri za Docker Compose Zinazotumika Mara kwa Mara
Amri hizi ni muhimu kukumbuka:
| Command | Description |
|---|---|
docker compose up -d | Start containers in the background |
docker compose down | Stop and remove containers and networks |
docker compose build | Build images using Dockerfile |
docker compose ps | List containers managed by Compose |
docker compose logs -f | View logs (optionally per service) |
Kutumia Compose kunakuwezesha kuunda tena mazingira yanayofanana mara kwa mara, na kuifanya kuwa bora kwa maendeleo ya timu.
6-6. Matumizi Yanayopendekezwa ya Compose katika Maendeleo
- Usanidi wa mazingira ya ndani kwa amri moja
- Kujaribu katika mazingira yanayofanana na uzalishaji
- Kuanza huduma zilizounganishwa kama hifadhidata, caches, na foleni za ujumbe
- Kuhifadhi data kwa volumes
- Kusimamia usanidi kwa vigezo vya mazingira
.env - Kusaidia usanifu tata wa microservice
Ukishakuwa na uelewa wa Docker na Compose, muda wa kusanidi mazingira unapungua sana, na kuboresha ufanisi wa maendeleo.
7. Usalama na Mambo ya Kijamii ya Uendeshaji
Docker ni chombo chenye nguvu sana na rahisi kutumia, lakini “kuwa kwenye kontena” haimaanishi “salama”.
Unapotumia Docker mara kwa mara kwenye Ubuntu, kuna mambo kadhaa muhimu ya usalama na uendeshaji ambayo unapaswa kuelewa.
Sehemu hii inaandaa maarifa muhimu ya kuendesha Docker kwa usalama na uthabiti, kwa njia rahisi kuelewa hata kwa wanaoanza.
7-1. Kikundi cha docker Kina Haki za “Root” Kawaida
Kikundi cha docker kilichosanidiwa awali kinasambaza haki kali sana.
Watumiaji walio katika kikundi cha docker wanaweza kushughulikia mfumo wa mwenyeji kupitia soketi ya Docker, ambayo inamaanisha ufikiaji wa ngazi ya root.
● Vidokezo Muhimu vya Kuzingatia
- Usiweke watumiaji wasio na uhusiano kwenye kikundi cha docker kwenye seva za pamoja
- Elewa matokeo, si tu urahisi wa “hakuna sudo inahitajika”
- Katika mashirika yenye sera kali za usalama, idhini ya msimamizi inaweza kutakiwa
final answer.This is rarely an issue on personal Ubuntu machines or development PCs, but careful judgment is required on production servers.
7-2. Kuzingatia Docker Isiyo na Root (Chaguo la Juu)
Docker inatoa kipengele kinachoitwa rootless mode, ambacho huruhusu daemon ya Docker kuendesha chini ya akaunti ya mtumiaji wa kawaida badala ya root.
Faida:
- Inapunguza kwa kiasi kikubwa hatari ya ruhusa za mfumo wa uendeshaji wa mwenyeji
- Inaruhusu matumizi salama ya Docker katika mazingira yenye mahitaji ya usalama mkali
Hasara:
- Baadhi ya vipengele vya mtandao vimezuiwa
- Usanidi ni mgumu zaidi kwa wanaoanza
- Tabia inaweza kutofautiana na Docker ya kawaida
Rootless mode si lazima kwa matumizi mengi ya maendeleo, lakini inaweza kuwa chaguo linalofaa katika mazingira ya biashara au yanayolenga uzingatiaji wa kanuni.
7-3. Kusafisha Picha na Kontena Zisizotumika
Kwa muda, Docker inaweza kutumia nafasi kubwa ya diski bila uliyogundua. Kontena, picha, na volumu zisizotumika zinaweza kukusanyika na kupita kwa urahisi 100GB.

● Amri za kuondoa rasilimali zisizotumika
Kuondoa picha zisizotumika
docker image prune
Kuondoa kontena na mitandao pamoja
docker system prune
Usafi mkali (tumia kwa tahadhari)
docker system prune -a
Chaguo -a linaondoa picha zote zisizotumika, hivyo liutumie kwa uangalifu.
7-4. Epuka Kutumia Lebo “latest” katika Uzalishaji
Ingawa lebo kama nginx:latest ni rahisi wakati wa maendeleo, hazipendekezwi kwa matumizi ya uzalishaji.
Sababu:
- Toleo halisi likilenga
latesthalihakikishiwi - Sasisho zisizotarajiwa zinaweza kusababisha kushindwa kwa wakati wa utekelezaji
- Kupoteza uwezo wa kurudia husababisha usambazaji usio thabiti
Njia inayopendekezwa: Baini matoleo waziwazi
Mfano:
image: nginx:1.25
Utoaji wa matoleo wazi ni kanuni ya msingi kwa mazingira ya uzalishaji.
7-5. Tumia Picha za Msingi Rasmi katika Dockerfiles
Unapounda Dockerfiles, fuata miongozo hii:
- Pendelea picha rasmi (picha za maktaba)
- Epuka picha zinazodumishwa na waandishi wasiojulikana au wasioaminika
- Unapotumia picha za OS nyepesi kama Alpine, hakikisha hali ya usaidizi wa hatari
Picha zisizoaminika zinaweza kuwa na programu hasidi. Hata katika mazingira ya maendeleo, epuka pale inapowezekana.
7-6. Kuwa Makini na Ufafanuzi wa Mtandao na Bandari
Wakati kontena zinafichua bandari kwenye OS ya mwenyeji, zinaweza kupatikana kutoka nje ya mfumo.
Tahadhari:
- Epuka ramani zisizo za lazima
-p 80:80 - Kwa matumizi ya ndani, fungua kwa localhost pekee, mfano
-p 127.0.0.1:8080:80 - Changanya na mipangilio ya ukuta wa moto kama UFW
- Kwa uzalishaji, tumia proxy ya kinyume (kama Nginx) kwa usalama bora
Usimamizi wa bandari ni muhimu hasa kwenye VPS au seva za Ubuntu zilizo kwenye wingu.
7-7. Usimamizi wa Logi Wakati wa Hitilafu
Logi za Docker zinaweza kuangaliwa kwa amri ifuatayo:
docker logs <container-name>
Kiasi kikubwa cha logi kinaweza kutumia nafasi ya diski haraka, hivyo fikiria kusanidi madereva ya logi na mzunguko wa logi.
8. Masuala ya Kawaida na Utatuzi wa Tatizo
Ingawa Docker ni chombo chenye nguvu, makosa yasiyotabirika yanaweza kutokea kwenye Ubuntu kutokana na tofauti za mazingira au makosa ya usanidi. Sehemu hii inahitimisha masuala ya kawaida na suluhisho zake, kutoka kiwango cha mwanzo hadi cha kati.
8-1. Haiwezi Kuunganisha na Daemon ya Docker
● Ujumbe wa kosa
Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
● Sababu na suluhisho
- Daemon ya Docker haifanyi kazi :
sudo systemctl start docker - Mabadiliko ya kikundi cha docker hayajatumika : Toka nje na uingie tena, au tumia
newgrp docker - Tatizo la ruhusa na /var/run/docker.sock : Hakikisha mtumiaji yuko katika kikundi cha docker
8-2. Makosa ya Ruhusa Imekataliwa
● Kosa la kawaida
Got permission denied while trying to connect to the Docker daemon socket
● Suluhisho
Sababu ni karibu kila wakati ukosefu wa usanidi wa kikundi cha docker.
sudo usermod -aG docker $USER
Kisha toka nje na uingie tena.
.### 8-3. Makosa ya GPG Wakati wa Kuongeza Hifadhi ya APT
● Mifano ya makosa
NO_PUBKEY XXXXXXXX
au
The following signatures couldn't be verified
● Sababu na suluhisho
- Ufunguo wa GPG haukujulikana kwa usahihi
- curl ilishindwa kutokana na vikwazo vya mtandao
Jisajili upya ufunguo kwa:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Kisha endesha sudo apt update tena.
8-4. Migogoro ya Kuunganisha Bandari
● Mfano wa kosa
Bind for 0.0.0.0:80 failed: port is already allocated.
● Sababu
- Bandari tayari inatumika na mchakato mwingine kwenye mwenyeji
- Konteena nyingine ya Docker inatumia bandari ileile
● Suluhisho
Angalia mchakato upi unaotumia bandari:
sudo lsof -i -P -n | grep :80
Angalia kontena zinazoendesha:
docker ps
Badilisha ramani ya bandari:
-p 8080:80
8-5. Ushindwa Kupakua Picha
● Sababu za kawaida
- Vikwazo vya mtandao (mazingira ya kampuni)
- Masuala ya usanidi wa DNS
- Ufikiaji wa Docker Hub umezuiwa
● Suluhisho
- Badilisha seva za DNS (kwa mfano 1.1.1.1 au 8.8.8.8)
- Thibitisha usanidi wa proksi
- Tumia VPN ikiwa inahitajika na mazingira
8-6. Makosa ya Kukauka kwa Nafasi ya Diski
● Ujumbe wa kawaida
no space left on device
● Suluhisho
Ondoa rasilimali zisizotumika:
docker system prune -a
Kagua picha, kontena, na vyo volume:
docker images
docker ps -a
docker volume ls
Kukauka kwa nafasi ya diski ni mojawapo ya masuala ya uendeshaji ya Docker yanayojulikana zaidi.

