Jinsi ya Kutumia Docker kwenye Ubuntu: Mwongozo Kamili wa Usakinishaji, Picha, Dockerfile, na Uboreshaji

目次

1. Utangulizi

Docker ni Nini?

Docker ni jukwaa linalotumia teknolojia ya uhalisia wa kontena ili kuendeleza, kusambaza, na kuendesha programu kwa ufanisi. Tofauti na mashine za pepe (VMs) za jadi, kontena hushiriki kiini cha mfumo wa uendeshaji wa mwenyeji, jambo linalowezesha kuanza haraka na matumizi madogo ya rasilimali.

Faida za Kutumia Docker kwenye Ubuntu

Ubuntu ni mojawapo ya usambazaji wa Linux wenye ulinganifu mzuri na Docker. Sababu kuu ni pamoja na:

  • Msaada Rasmi : Docker inaunga mkono Ubuntu rasmi, ikiruhusu usakinishaji rahisi kupitia hazina ya rasilimali rasmi.
  • Usimamizi wa Pakiti Imara : Meneja wa pakiti wa APT wa Ubuntu hufanya usimamizi wa matoleo kuwa rahisi.
  • Msaada wa Jamii Mpana : Ubuntu ina wingi wa watumiaji duniani kote, hivyo kutatua matatizo kunakuwa rahisi pale matatizo yanapotokea.

Unachojifunza Katika Makala Hii

Mwongozo huu unaelezea mada zifuatazo hatua kwa hatua:

  1. Jinsi ya kusanidi Docker kwenye Ubuntu
  2. Operesheni za msingi za picha za Docker
  3. Kuunda picha maalum kwa kutumia Dockerfile
  4. Kuweka lugha ya Kijapani katika kontena ya Ubuntu
  5. Kuboresha na kupunguza ukubwa wa picha za Docker
  6. Kuendeleza programu ndani ya kontena za Ubuntu
  7. Makosa ya kawaida na utatuzi wa matatizo

Yaliyomo ni muhimu kwa watumiaji wa mwanzo na wazoefu, hivyo jisikie huru kurejelea wakati wowote.

2. Kusanidi Docker kwenye Ubuntu

Kusanidi Docker Kutumia Hazina ya Rasilimali Rasmi

Katika Ubuntu, unaweza kusanidi Docker kwa urahisi ukitumia hazina ya rasilimali rasmi. Fuata hatua zilizo hapa chini ili kuandaa mazingira yako.

1. Ondoa Pakiti za Docker Zilizopo

Ubuntu inaweza kuwa na pakiti iitwayo docker.io, ambayo inaweza kuwa toleo la zamani. Iondoe kabla ya kusanidi Docker ya karibuni.

sudo apt remove docker docker-engine docker.io containerd runc

2. Sakinisha Pakiti Zinazohitajika

Sakinisha pakiti za utegemezi kabla ya usakinishaji.

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

3. Ongeza Hazina ya Rasilimali Rasmi ya Docker

Ongeza ufunguo wa GPG wa Docker na usanidi hazina.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. Sakinisha Docker

Baada ya kuongeza hazina, sanidi Docker.

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

5. Thibitisha Usakinishaji

Angalia kama Docker imewekwa vizuri kwa kuonyesha taarifa ya toleo.

docker --version

Usanidi wa Awali Baada ya Usakinishaji

1. Anzisha na Wezesha Huduma ya Docker

Anzisha huduma ya Docker na uiruhusu ianze kiotomatiki wakati wa kuanzisha mfumo.

sudo systemctl start docker
sudo systemctl enable docker

2. Ruhusu Watumiaji Wasio-Root Kuendesha Docker

Kwa chaguo-msingi, ni root pekee anayeweza kuendesha Docker. Ruhusu watumiaji wa kawaida kutekeleza amri za Docker.

sudo usermod -aG docker $USER

Toka nje na uingia tena ili mabadiliko yawe na athari.

3. Jaribu Operesheni ya Docker

Endesha kontena ya hello-world ukitumia akaunti ya mtumiaji wa kawaida.

docker run hello-world

Kama matokeo yanajumuisha “Hello from Docker!”, usakinishaji umekamilika kwa mafanikio.

3. Operesheni za Msingi za Picha za Docker

Picha ya Docker ni Nini?

Picha ya Docker inafanya kazi kama kiolezo cha kuunda kontena. Kwa kutumia picha ya Docker inayotokana na Ubuntu, unaweza kuanzisha mazingira ya Ubuntu haraka.

Kupakua Picha za Ubuntu kutoka Docker Hub

Docker Hub hutoa picha nyingi za Docker rasmi. Ili kupakua picha ya Ubuntu, endesha amri ifuatayo:

docker pull ubuntu

Kuanzisha na Kusitisha Kontena

Tumia picha ya Ubuntu iliyopakuliwa kuanzisha kontena:

docker run -it ubuntu bash

Hii inafungua shell ndani ya kontena la Ubuntu, ikiruhusu kufanya kazi ndani yake.

Orodha ya Kontena

Onyesha kontena zinazoendesha:

docker ps

Onyesha kontena zote, ikiwa ni pamoja na zilizosimamishwa:

docker ps -a

Kusimamisha na Kuondoa Kontena

Simamisha kontena inayoendesha:

docker stop [container ID or name]

Ondoa kontena isiyo ya lazima:

docker rm [container ID or name]

Kudhibiti Picha za Docker

orodha picha za Docker zilizopakuliwa:

docker images

Ondoa picha:

docker rmi [image ID]

4. Kuunda Picha Rasmi kwa Kutumia Dockerfile

Dockerfile Ni Nini?

Dockerfile ni faili ya usanidi inayotumiwa kujenga picha za Docker. Kulingana na maagizo yaliyoandikwa katika Dockerfile, unaweza kuunda picha za Docker zilizobadilishwa. Hii inaruhusu kuunganisha mazingira ya maendeleo au kuunda picha zinazojumuisha vifurushi vinavyohitajika.

Sintaksisi ya Msingi ya Dockerfile

Dockerfile kwa kawaida inajumuisha amri zifuatazo:

CommandDescription
FROMSpecifies the base image
RUNExecutes commands to build the image
COPYCopies files into the container
WORKDIRSets the working directory
CMDDefault command executed when the container starts
ENTRYPOINTDefines the entry point of the container

Kuunda Picha Rasmi ya Ubuntu Iliyobadilishwa

Fuata hatua hizi chini ili kuunda picha rasmi ya Docker inayotegemea Ubuntu iliyobadilishwa.

1. Unda Saraka ya Kazi

Kwanza, unda saraka mpya ya mradi na ingia ndani yake.

mkdir my-ubuntu-image
cd my-ubuntu-image

2. Unda Dockerfile

Unda Dockerfile ndani ya saraka na andika maudhui yafuatayo:

# Base Ubuntu official image
FROM ubuntu:latest

# Maintainer information (optional)
LABEL maintainer="your-email@example.com"

# Update package list and install basic tools
RUN apt update && apt install -y curl vim git

# Set working directory
WORKDIR /workspace

# Default command when the container starts
CMD ["bash"]

3. Jenga Picha ya Docker

Jenga picha rasmi iliyobadilishwa kutoka kwa Dockerfile yako:

docker build -t my-ubuntu-image .

Chaguo la -t linapeana jina kwa picha hiyo.

4. Thibitisha Picha

Angalia picha yako mpya iliyojengwa:

docker images

5. Endesha Kontena

Anza kontena kutoka kwa picha rasmi iliyobadilishwa:

docker run -it my-ubuntu-image

Picha hii inajumuisha zana kama curl na vim.

5. Kuweka Mazingira ya Kijapani katika Kontena za Ubuntu

Picha rasmi ya Ubuntu kwa chaguo-msingi inatumia mazingira ya Kiingereza. Ili kutumia Kijapani, usanidi wa ziada unahitajika.

Kuweka Eneo la Kijapani

Ili kuwezesha onyesho na ingizo la Kijapani katika kontena ya Ubuntu, weka eneo la Kijapani.

1. Weka Vifurushi Vinavyohitajika

apt update
apt install -y language-pack-ja locales

2. Sanidi Eneo

Tengeneza na tumia eneo:

locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8

3. Tumia Mipangilio

export LANG=ja_JP.UTF-8

Kuweka Ingizo la Kijapani

Ili kuingiza herufi za Kijapani katika terminal, weka ibus-mozc:

apt install -y ibus-mozc

Ikiwa unatumia programu za GUI, ongeza anuwai za mazingira zifuatazo:

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

Kutumia Programu za GUI

Ili kuendesha programu za GUI ndani ya kontena ya Docker, tumia seva ya X kwenye mashine mkuu.

Endesha kontena na X11 imewezeshwa:

docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image

6. Kuboresha na Kupunguza Ukubwa wa Picha za Docker

Picha za Docker zinaweza kuboreshwa ili kuboresha kasi ya kuanza kontena na kupunguza matumizi ya uhifadhi. Hapa kuna mbinu kadhaa za kuunda picha nyepesi.

Jinsi ya Kuunda Picha Nyepesi Inayotegemea Ubuntu

Picha ya ubuntu:latest kwa chaguo-msingi ni kubwa kwa kiasi fulani. Kutumia chaguo nyepesi zaidi kama ubuntu:minimal inasaidia kupunguza ukubwa wa kontena.

FROM ubuntu:minimal

Chaguo lingine ni kutumia Alpine Linux, ambayo ni ndogo sana kuliko Ubuntu.

FROM alpine:latest
RUN apk add --no-cache bash curl

Kutumia Alpine kunaweza kupunguza ukubwa wa picha kwa mamia ya megabyte kadhaa.

Kupunguza Ukubwa wa Picha kwa Kuondoa Faili Zisizo za Lazima

Unaweza kupunguza ukubwa wa picha kwa kufuta faili za cache zisizo za lazima zilizotengenezwa na apt-get.

RUN apt update && apt install -y curl vim \
    && apt clean \
    && rm -rf /var/lib/apt/lists/*

Kwa maalum, amri ya rm -rf /var/lib/apt/lists/* husitisha orodha za vifurushi na data isiyotumika.

Kutumia Ujenzi wa Awamu Nyingi

Ujenzi wa awamu nyingi unakuwezesha kutumia zana tu wakati wa mchakato wa ujenzi huku ukifanya picha ya mwisho iwe nyepesi.

FROM ubuntu as builder
RUN apt update && apt install -y gcc

FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc

Kwa njia hii, unazuia kujumuisha zana za maendeleo katika picha ya mwisho, na kusababisha alama ndogo sana.

7. Mfano wa Kivitendo: Maendeleo ya Maombi katika Kontena za Ubuntu

Sehemu hii inatoa utangulizi wa jinsi ya kuweka mazingira ya maendeleo ndani ya kontena za Ubuntu.

Kuweka Mazingira ya Maendeleo ya Python

Unda Dockerfile ifuatayo ili kuweka mazingira ya maendeleo ya Python katika kontena ya Ubuntu:

FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]

Jenga picha na endesha kontena:

docker build -t python-dev .
docker run -it python-dev

Mazingira haya yanakuwezesha kutumia amri ya python3 kwa maendeleo ya skripti na upimaji.

Kuweka Mazingira ya Maendeleo ya Node.js

Ili kuweka mazingira ya maendeleo ya Node.js, tumia Dockerfile ifuatayo:

FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]

Jenga na endesha kontena:

docker build -t node-dev .
docker run -it node-dev

Mazingira haya yanaruhusu utekelezaji wa JavaScript na maendeleo ya maombi kwa kutumia amri ya node.

8. Maswali Yanayoulizwa Mara kwa Mara (FAQ) & Utatuzi wa Tatizo

Kutumia Docker kunaweza kusababisha masuala mbalimbali. Hapo chini kuna maswali ya kawaida na suluhisho za kawaida.

Tofauti Kati ya Docker na Mashine za Virtual

  • Docker : Inashiriki kernel ya OS ya mwenyeji, na kuifanya iwe nyepesi na kuanzisha kontena haraka.
  • Mashine za Virtual (VMs) : Kila VM ina OS yake, na kusababisha matumizi makubwa ya rasilimali na kuanzisha polepole.

Docker inajitahidi katika ufanisi wa rasilimali na inafaa kwa mazingira ya maendeleo na usambazaji otomatiki.

Kudumisha Data katika Kontena za Ubuntu

Ili kuhifadhi data hata baada ya kontena kusimama, tumia mounts ya volum:

docker run -v my_data:/data ubuntu

Hata kama kontena imefutwa, data iliyohifadhiwa katika volum ya my_data inaweza kutumika tena.

Makosa ya Kawaida na Suluhisho

1. Hitilafu ya permission denied

Kama unaona permission denied unapojaribu kuendesha Docker, mtumiaji wako huenda haiko katika kundi la docker.

Ongeza mtumiaji kwenye kundi la Docker:

sudo usermod -aG docker $USER

Toka nje na uingie tena ili mabadiliko yawezekane.

2. Hitilafu ya image not found

Kama picha imeondolewa kutoka Docker Hub, taja lebo mpya unapovuta:

docker pull ubuntu:22.04

Kutoa toleo wazi huhakikisha kwamba picha sahihi inapatikana.