Mwongozo Kamili wa Kuunda na Kusimamia Picha za Docker kwenye Ubuntu | Usakinishaji, Uboreshaji, na Utatuzi wa Tatizo

目次

1. Utangulizi

Docker ni nini?

Docker ni jukwaa linalotumia teknolojia ya uisia wa kontena 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 muda mfupi waanza na matumizi madogo ya rasilimali.

Faida za Kutumia Docker kwenye Ubuntu

Ubuntu ni mojawapo ya usambazaji wa Linux unaofaa sana kwa Docker. Faida kuu ni pamoja na:

  • Msaada Rasmi : Docker inaunga mkono Ubuntu rasmi, na usakinishaji ni rahisi kupitia hazina rasmi.
  • Usimamizi wa Paketi Imara : Meneja wa paketi wa APT wa Ubuntu hufanya iwe rahisi kusimamia matoleo ya Docker.
  • Msaada wa Jamii Mpana : Ubuntu ina wingi wa watumiaji duniani, na hivyo kurahisisha kupata suluhisho wakati wa kutatua matatizo.

Unachojifunza katika Makalaii

Makala hii itakuongoza kupitia mada zifuatazo hatua kwa hatua:

  1. Jinsi ya kusakinisha Docker kwenye Ubuntu
  2. Operesheni za msingi za picha za Docker
  3. Kuunda picha maalum kwa kutumia Dockerfile
  4. Kusanidi mazingira ya lugha ya Kijapani katika kontena ya Ubuntu
  5. Kuboresha na kupunguza ukubwa za Docker
  6. Kuendeleza programu katika kontena ya Ubuntu
  7. Makosa ya kawaida na suluhisho za utatuzi

Mwongozo huu ni wa manufaa kwa watumiaji wa mwanzo na wazoefu, hivyo jisikie huru kuutumia kama rufaa.

2. Kusakinisha Docker kwenye Ubuntu

Kusakinisha Docker kwa Kutumia Hazina Rasmi

Katika Ubuntu, kusakinisha Docker kwa urahisi kwa kutumia hazina rasmi. Fuata hatua zifuatazo kuisanidi.

1. Ondoa Vifurushi vya Docker vilivyopo

Ubuntu inatoa kifurushi kinachoitwa docker.io kwa chaguo-msingi, lakini kinaweza kuwa la zamani. Inashauriwa kuondoa kwanza.

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

2. Sakinisha Vifurushi Vinavyohitajika

Kabla ya kusisha Docker, sakinisha vifurushi vinavyohitajika kama utegemezi.

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

3. Ongeza Hazina Rasmi ya Docker

Ongeza ufunguo waPG rasmi wa Docker na weka 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, sakinisha Docker.

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

5. Thibitisha Usakinishaji

Ili kuangalia kama Docker imewekwa vizuri, onyesha taarifa ya toleo.

docker --version

Usanidi wa Awali Baada ya Usakinishaji

1. Anzisha na Wezesha Huduma ya Docker

Anzisha huduma ya Docker na irekebishe iendeke kwa otomatiki wakati wa kuanza kwa mfumo.

sudo systemctl start docker
sudo systemctl enable docker

2. Ruhusu Watumiaji Wasio-Root Kutumia Docker

Kwa chaguo-msingi, ni mtumiaji wa root pekee anayeweza kuendesha Docker. Ili kumruhusu mtumiaji wa kawaida kutumia amri za Docker, ongeza mtumiaji kwenye kundi la docker group.

sudo usermod -aG docker $USER

Ili kutekeleza mabadiliko, toka nje na uingie tena.

3. Jaribu Docker

Endesha kontena ya hello-world ili kuangalia kama Docker inafanya kazi vizuri.

docker run hello-world

Ukiona ujumbe “Hello from Docker!”, usakinishaji umekamilika kwa mafanikio.

3. Operesheni za Msingi na Picha za Docker

Docker Image ni nini?

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

ua Picha za Ubuntu kutoka Docker Hub

Docker Hub ina mkusanyiko mkubwa wa picha rasmi za Docker. Kupakua picha ya Ubuntu, tumia amri ifuatayo:

docker pull ubuntu

Kuanzisha na Kuzima Kontena

Unaweza kuanza kontena kwa kutumia picha ya Ubuntu iliyopakuliwa na amri ifuatayo:

docker run -it ubuntu bash

Amri hii inafungua ganda ndani ya kontena ya Ubuntu, ikiruhusu kuwasiliana nayo moja kwa moja.

Orodha ya Kontena Zinazoendesha

Ili kuangalia ni kontena zipi zinazoendesha sasa, tumia amri hii:

docker ps

Ili kuonyesha kontena zote, pamoja na zilizosimamishwa, ongeza chaguo la -a:

docker ps -a

Kusimamisha na Kuondoa Kontena

Ili kusimamisha kontena inayoendesha, tumia amri ifuatayo:

docker stop [container ID or name]

Ili kuondoa kontena isiyo ya lazima, tumia amri hii:

docker rm [container ID or name]

Kudhibiti Picha za Docker

Ili kuorodhesha picha zote za Docker zilizopakuliwa, tumia amri ifuatayo:

docker images

Ili kuondoa picha isiyotumiwa, tumia amri hii:

docker rmi [image ID]

4. Kuunda Picha za Docker za Kibinafsi na Dockerfile

Dockerfile ni Nini?

Dockerfile ni faili ya usanidi inayotumiwa kuunda picha za Docker. Kwa kufafanua maagizo maalum katika Dockerfile, unaweza kujenga picha za Docker zilizobadilishwa kulingana na mahitaji yako. Hii inasaidia kusawazisha mazingira ya maendeleo na kujumuisha vifurushi muhimu katika picha.

Sintaksisi ya Msingi ya Dockerfile

Dockerfile kwa kawaida inajumuisha amri kuu zifuatazo:

CommandDescription
FROMSpecifies the base image
RUNExecutes commands to build the image
COPYCopies files into the container
WORKDIRSets the working directory
CMDDefines the default command to run when the container starts
ENTRYPOINTSpecifies the main command executed when the container runs

Kuunda Picha ya Docker ya Kibinafsi Inayotegemea Ubuntu

Fuata hatua hizi kuunda picha ya Docker ya kibinafsi inayotegemea Ubuntu.

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

Ndani ya saraka, unda Dockerfile na ongeza maudhui yafuatayo:

# Use the official Ubuntu base image
FROM ubuntu:latest

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

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

# Set the working directory
WORKDIR /workspace

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

3. Jenga Picha ya Docker

Tumia amri ifuatayo kujenga picha ya kibinafsi kutoka kwa Dockerfile.

docker build -t my-ubuntu-image .

Chaguo la -t linapeana jina kwa picha.

4. Thibitisha Picha Iliyojengwa

Angalia orodha ya picha zinazopatikana ili kuhakikisha kuwa picha mpya imeundwa kwa mafanikio.

docker images

5. Endesha Kontena kutoka kwa Picha ya Kibinafsi

Anza kontena kwa kutumia picha ya kibinafsi iliyoundwa hivi karibuni.

docker run -it my-ubuntu-image

Kontena hii inapaswa kujumuisha zana kama curl na vim kama ilivyotajwa katika Dockerfile.

5. Kusanidi Mazingira ya Lugha ya Kijapani katika Kontena ya Ubuntu

Kwa chaguo-msingi, picha ya Docker ya Ubuntu imewekwa kwa Kiingereza. Ikiwa unahitaji kutumia Kijapani, usanidi wa ziada unahitajika.

Kusanidi Eneo la Kijapani

Ili kuwezesha onyesho na ingizo la Kijapani katika kontena ya Ubuntu, weka programu za lugha zinazohitajika.

1. Weka Vifurushi Vinavyohitajika

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

2. Sanidi Eneo

Weka eneo na utekeleze mipangilio.

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

3. Tekeleza Mipangilio

export LANG=ja_JP.UTF-8

Kusanidi Ingizo la Kijapani

Ili kuwezesha ingizo la maandishi ya Kijapani katika kituo cha terminal, weka ibus-mozc.

apt install -y ibus-mozc

Ikiwa unatumia mazingira ya 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, unaweza kutumia seva ya X.

Weka seva ya X kwenye mashine ya mwenyeji na 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

Uboreshaji za Docker huongeza kasi ya kuanza kwa kontena na hupunguza matumizi ya hifadhi. Sehemu hii inatambulisha mbinu za kutengeneza picha nyepesi.

Kutengeneza Picha Nyepesi Inayotokana na Ubuntu

Picha chaguo-msingi ubuntu:latest ni kubwa kiasi. Ili kupunguza ukubwa wa kontena, fikiria kutumia mbadala mdogo kama ubuntu:minimal.

FROM ubuntu:minimal

Vinginevyo, unaweza kutumia Alpine Linux, ambayo ni ndogo sana ikilinganishwa na Ubuntu.

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

Njia hii inaweza kupunguza ukubwa wa picha kwa mamia ya megabytes kadhaa.

Kuondoa Faili Zisizo za Lazima Ili Kupunguza Ukubwa wa Picha

Baada ya kusakinisha vifurushi kwa apt-get, unaweza kuondoa faili za kashe zisizo za lazima ili kupunguza ukubwa wa picha.

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

Amri rm -rf /var/lib/apt/lists/* hushusha orodha ya vifurushi, ikipunguza data zisizo za lazima.

Kutumia Ujenzi wa Awamu Nying Builds)

Kwa ujenzi wa awamu nyingi, unaweza kutumia kontena ya muda kwa ajili ya kujenga utegemezi huku ukibakia na picha ya mwisho nyepesi.

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

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

Teknolojia hii inakuweha kuondoa zana za maendeleo zisizo za lazima kutoka kwenye picha ya mwisho, na kuifanya ndogo sana.

7. Mwongozo wa Vitendo: Kuendeleza Maombi Katika Kontena ya Ubuntu

Katika sehemu hii, tutaunda mazingira ya maendeleo ndani ya kontena ya Ubuntu na kuonyesha jinsi ya kuendeleza maombi kwa kutumia Docker.

Kuweka Mazingira ya Maendeleo ya Python

Ili kuunda mazingira ya maendeleo ya Python ndani ya kontena ya Docker, tumia Dockerfile ifuatayo.

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

Ndani ya kontena, unaweza kutekeleza amri ya python3 kuendeshaipti za Python na kuendeleza maombi.

Kuweka Mazingira ya Maendeleo ya Node.js

Kwa 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

Kwa usanidi huu, unaweza kutumia amri ya node kutekeleza msimbo wa JavaScript na kuendeleza maombi katika mazingira yanayotumiwa.

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

Wakati wa kutumia Docker, unaweza kukutana na masuala mbalimbali. Sehemu hii inatoa suluhisho kwa matatizo ya kawaida na maswali yanayoulizwa mara kwa mara.

Tofauti Kati ya Docker na Mashine za Kivirtuali

  • Docker: Inashiriki kernel ya OS ya mwenyeji hivyo kuwa nyepesi na kuwezesha kuanza kwa kontena haraka.
  • Mashine za Kivirtuali (VMs): Kila VM ina OS yake mwenyewe, ikichukua rasilimali zaidi na kuchukua muda mrefu kuanza.

Docker ni bora katika matumizi ya rasilimali, na hivyo ni bora kwa mazingira ya maendeleo na usambazaji otomatiki.

Kuhifadhi Data Katika Kontena ya Ubuntu

Ili kudumisha data hata baada ya kontena kusitishwa, tumia kufunga volumu.

docker run -v my_data:/data ubuntu

Volumu my_data huhifadhi data kwa kudumu, ikiruhusu kupatikana hata baada ya kontena kuondolewa.

Makosa ya Kawaida na Suluhisho

1. Hitilafu ya permission denied

Ukiona hitilafu ya permission denied unapokimbia amri za Docker, mtumiaji wako huenda haiko katika kundi la docker.

Ongeza mtumiaji wako kwenye kundi la docker kwa kutumia amri ifuatayo:

sudo usermod -aG docker $USER

Baada ya kutekeleza amri hii, tazama nje na uingia tena ili mabadiliko yawezekane.

2. Hitilafu ya image not found

Kama picha imeondolewa kwenye Docker Hub, t lebo tofauti ili kupakua toleo sahihi.

docker pull ubuntu:22.04

Kwa kutaja toleo, unaweza kuhakikisha unapakua picha inayofanya kazi.