Buong Gabay sa Paglikha at Pamamahala ng Docker Images sa Ubuntu: Pag-install, Pag-optimize, Pagresolba ng Problema

目次

1. Panimula

Ano ang Docker?

Docker ay isang platform na gumagamit ng teknolohiyang virtualization ng container upang gawing mas mahusay ang pag-unlad, pamamahagi, at pagpapatupad ng mga aplikasyon. Hindi ito katulad ng tradisyunal na virtual machine (VM), dahil ang mga container ay nagbabahagi ng kernel ng host OS, kaya mas mabilis ang pag-boot at mas kaunti ang pagkonsumo ng resources.

Mga Benepisyo ng Paggamit ng Docker sa Ubuntu

Ang Ubuntu ay isa sa mga Linux distribution na may mataas na compatibility sa Docker. Ang mga dahilan nito ay ang mga sumusunod.

  • Opisyal na Suporta: Sinusuportahan ng Docker ang Ubuntu nang opisyal, at madaling i-install mula sa opisyal na repository.
  • Matatag na Pamamahala ng Package: Gumagamit ng APT package manager ng Ubuntu upang madaling pamahalaan ang bersyon ng Docker.
  • Malawak na Suporta ng Komunidad: Dahil maraming gumagamit ng Ubuntu sa buong mundo, madaling makahanap ng impormasyon kapag may problema.

Ano ang Matututunan sa Artikul na Ito

Sa artikulong ito, ipapaliwanag namin ang mga sumusunod nang sunud-sunod.

  1. Paano i-install ang Docker sa Ubuntu
  2. Basic na Operasyon ng Docker Image
  3. Paglikha ng Custom Image Gamit ang Dockerfile
  4. Pag-set up ng Japanese Environment sa Ubuntu Container
  5. Optimization at Pagpapagaan ng Docker Image
  6. Pag-unlad ng App sa Ubuntu Container
  7. Mga Karaniwang Error at Solusyon

Ang nilalaman ay angkop para sa mga nagsisimula hanggang sa mga advanced, kaya mangyaring gamitin ito bilang sanggunian.

2. Pag-install ng Docker sa Ubuntu

Pag-install ng Docker Gamit ang Opisyal na Repositoryo

Sa Ubuntu, maaari kang mag-install ng Docker nang madali sa pamamagitan ng paggamit ng opisyal na repositoryo. Sundin natin ang mga hakbang sa ibaba upang i-set up.

1. Alisin ang Lumang Mga Pakete ng Docker

Sa Ubuntu, may default na pakete na tinatawag na docker.io, ngunit dahil maaaring luma na ito, alisin natin ito.

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

2. Mag-install ng Kinakailangang Mga Pakete

Bago ang pag-install, i-install ang kinakailangang mga dependency package.

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

3. Magdagdag ng Opisyal na Repositoryo ng Docker

Magdagdag ng opisyal na GPG key ng Docker at i-set up ang repositoryo.

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. Pag-install ng Docker

Pagkatapos magdagdag ng repositoryo, i-install ang Docker.

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

5. Kumpirmahin ang Pag-install

Upang kumpirmahin kung tama ang pag-install ng Docker, ipakita natin ang impormasyon ng bersyon.

docker --version

Initial na Pag-set up Pagkatapos ng Pag-install

1. I-start at I-enable ang Serbisyo ng Docker

I-start ang serbisyo ng Docker at i-set up ito upang magpatakbo awtomatikong sa pag-boot ng sistema.

sudo systemctl start docker
sudo systemctl enable docker

2. Payagan ang Paggamit ng Docker para sa Non-root Users

Sa default, tanging ang root user ang makakagamit ng Docker, kaya i-set up natin upang ang ordinaryong user ay makagamit ng mga command ng Docker.

sudo usermod -aG docker $USER

Upang i-apply ang mga setting, mag-log out muna at mag-log in muli.

3. Suriin ang Pag-andar

Patakbuhin ang hello-world container gamit ang karapatan ng ordinaryong user at kumpirmahin kung tama ang pag-andar ng Docker.

docker run hello-world

Kung makikita ang “Hello from Docker!” sa output, matagumpay ang pag-install.

3. Mga Batayang Operasyon ng Docker Image

Ano ang Docker Image?

Ang Docker image ay parang isang template para sa paglikha ng container. Sa pamamagitan ng paggamit ng Docker image na nakabase sa Ubuntu, maaari mong mabilis na i-set up ang Ubuntu environment.

Pagkuha ng Ubuntu Image mula sa Docker Hub

Sa Docker Hub, maraming opisyal na Docker image ang nirehistro. Upang makuha ang Ubuntu image, i-execute ang sumusunod na command.

docker pull ubuntu

Paglunsad at Pagpatigil ng Container

Sa paggamit ng natamong Ubuntu image, maaari mong i-launch ang container.

docker run -it ubuntu bash

Kapag na-execute ang command na ito, magbubukas ang shell ng Ubuntu container, at maaari kang mag-operate sa loob ng container.

Paglista ng mga Container

Upang suriin ang mga nagsisimulang container, gumamit ng sumusunod na command.

docker ps

Upang ipakita ang lahat ng container (kabilang ang mga naka-stop), lagyan ng -a option.

docker ps -a

Pagpatigil at Pagbura ng Container

Upang patigilin ang nagsisimulang container, gumamit ng sumusunod na command.

docker stop [ID ng container o pangalan]

Upang tanggalin ang hindi kailangang container, i-execute ang sumusunod na command.

docker rm [ID ng container o pangalan]

Pamamadali ng Docker Image

Upang ipakita ang listahan ng mga na-download na Docker image, gumamit ng sumusunod na command.

docker images

Upang tanggalin ang hindi kailangang image, gumamit ng sumusunod na command.

docker rmi [ID ng image]

4. Paggawa ng Custom Image Gamit ang Dockerfile

Ano ang Dockerfile?

Ang Dockerfile ay isang configuration file para sa paglikha ng Docker image. Sa pamamagitan ng pagsunod sa mga tagubilin na nakasulat sa Dockerfile, maaaring lumikha ng customized na Docker image. Sa ganitong paraan, maaaring i-standardize ang development environment, o lumikha ng image na may kasamang kinakailangang mga package.

Basic Syntax ng Dockerfile

Sa Dockerfile, pangunahing sinusulat ang mga utos na ito.

UtosPaliwanag
FROMTukuyin ang base na imahe
RUNIpatupad ang utos upang bumuo ng imahe
COPYKopyahin ang file sa container
WORKDIRI-set ang working directory
CMDDefault na utos na ipatutupad kapag nag-start ang container
ENTRYPOINTEntry point kapag nag-e-execute ang container

Paggawa ng Custom Image Batay sa Ubuntu

Sunod ang mga hakbang upang gumawa ng custom Docker image batay sa Ubuntu.

1. Gumawa ng Working Directory

Uunahin, gumawa ng bagong project directory at lumipat doon.

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

2. Gumawa ng Dockerfile

Gumawa ng Dockerfile sa loob ng directory at isulat ang sumusunod na nilalaman.

# Official na imahe ng Ubuntu bilang base
FROM ubuntu:latest

# Impormasyon ng maintainer (opsyonal)
LABEL maintainer="your-email@example.com"

# I-update ang listahan ng package at i-install ang basic na tool
RUN apt update && apt install -y curl vim git

# I-set ang working directory
WORKDIR /workspace

# Utos na ipatutupad kapag nag-start ang container
CMD ["bash"]

3. I-build ang Docker Image

Gumamit ng Dockerfile upang i-build ang custom image.

docker build -t my-ubuntu-image .

Ang opsyon na -t ay ginagamit upang tukuyin ang pangalan ng imahe.

4. Suriin ang Image

Upang suriin ang naibuild na imahe, ipatupad ang sumusunod na utos.

docker images

5. I-start ang Container

I-start ang container mula sa naibuild na custom image.

docker run -it my-ubuntu-image

Sa container na ito, dapat na naka-install ang mga tool tulad ng curl at vim.

5. Pagsasaayos ng Kapaligiran ng Hapon sa Ubuntu Container

Ang default na imahe ng Ubuntu ay may kapaligirang Ingles, at upang magamit ang wika na Hapon, kailangan ng karagdagang pagsasaayos.

Pagsasaayos ng Locale ng Hapon

Upang mapagana ang pagpapakita at pag-input ng Hapon sa Ubuntu container, i-install ang locale ng Hapon.

1. Pag-install ng Kinakailangang Mga Package

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

2. Pagsasaayos ng Locale

I-set ang locale at i-apply ito.

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

3. Pag-apply ng Pagsasaayos

export LANG=ja_JP.UTF-8

Pagtatayo ng Kapaligiran ng Pag-input ng Hapon

Upang mapagana ang pag-input ng Hapon sa terminal, i-introduce ang ibus-mozc.

apt install -y ibus-mozc

Kung gumagamit ng GUI environment, idagdag ang sumusunod na mga variable ng kapaligiran.

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

Paggamit ng GUI Applications

May paraan upang magamit ang GUI apps sa loob ng Docker container gamit ang X server.

Sa panig ng host, i-install ang X server, i-enable ang X11, at i-run ang container.

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

6. Pag-ooptimize at Pagpapagaan ng Docker Image

Sa pamamagitan ng pag-ooptimize ng Docker image, maaari mong mapabuti ang bilis ng pag-sisimula ng container at bawasan ang paggamit ng storage. Dito, ipapakita namin ang mga pamamaraan para gumawa ng lightweight na image.

Paano Gumawa ng Lightweight na Ubuntu-based Image

Ang default naubuntu:latest ay malaki ang laki, kaya gumamit ng mas lightweight naubuntu:minimal at iba pa upang mapigilan ang laki ng container.

FROM ubuntu:minimal

Bukod dito, mayroon ding paraan na gumamit ngAlpine Linux na mas lightweight kaysa sa Ubuntu.

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

Gamit ang paraang ito, maaari mong bawasan ang laki ng image ng daan-daang MB.

Pagbaba ng Laki ng Image sa Pag-delete ng Hindi Kinakailangang Mga File

Sa pamamagitan ng pag-delete ng hindi kinakailangang cache na nainstall gamit angapt-get, maaari mong bawasan ang laki ng image.

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

Sa pamamagitan ng pagdagdag ngrm -rf /var/lib/apt/lists/* na ito, maaari mong tanggalin ang package list at bawasan ang walang saysay na data.

Paggamit ng Multi-stage Build

Halimbawa, gamitin lamang ang compiler sa panahon ng build, at gawing lightweight ang final image.

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

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

Gamit ang paraang ito, hindi mo isasama ang development tools sa final image, at makakagawa ng lightweight na environment.

7. Pagsasanay: Pagbuo ng Aplikasyon sa Ubuntu Container

Dito, ipapakita namin ang paraan ng aktwal na pagbuo ng kapaligiran ng pag-develop gamit ang Ubuntu container.

Pag-set up ng Kapaligiran ng Pag-develop sa Python

Upang i-set up ang kapaligiran ng pag-develop sa Python sa loob ng Ubuntu container, lumikha ng sumusunod na Dockerfile.

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

I-build ang image at i-start ang container.

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

Sa kapaligirang ito, maaari mong i-execute ang python3 command, at mag-develop at mag-test ng mga script.

Pag-set up ng Kapaligiran ng Pag-develop sa Node.js

Kung nagbuo ng kapaligiran ng pag-develop sa Node.js, gumamit ng sumusunod na Dockerfile.

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

Katulad na i-build at i-execute.

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

Sa kapaligirang ito, gamit ang node command, maaari mong i-execute ang JavaScript at mag-develop ng mga aplikasyon.

8. Mga Madalas na Tanong at Paglutas sa Problema (FAQ)

Kapag gumagamit ng Docker, maaaring makaranas ng iba’t ibang problema. Sa seksyong ito, ipapakita namin ang mga karaniwang tanong at ang kanilang mga solusyon.

Ang Pagkakaiba ng Docker at Virtual Machine

  • Docker: Dahil nagbabahagi ng kernel ng host OS, ito ay magaan at mabilis ang pagsisimula ng container.
  • Virtual Machine (VM): Dahil may sariling OS, mataas ang pagkonsumo ng resources, at mabagal ang pagsisimula.

Ang Docker ay mahusay sa pag-optimize ng resources, kaya angkop ito sa development environment at awtomatikong deployment.

Pagpapanatili ng Data sa Ubuntu Container

Upang mapanatili ang data kahit na huminto ang container, gumamit ng volume mount.

docker run -v my_data:/data ubuntu

Kahit na i-delete ang container, ang data ay napanatili sa my_data volume at maaaring muling gamitin.

Mga Karaniwang Error at Mga Solusyon

1. permission denied Error

Kapag sinubukan mong i-run ang Docker at lumabas ang permission denied, posibleng hindi ka miyembro ng docker group.

Ipatupad ang sumusunod na command upang idagdag ang user sa docker group.

sudo usermod -aG docker $USER

Pagkatapos ma-apply, kailangang mag-logout at mag-log in muli.

2. image not found Error

Kung na-delete ang image mula sa Docker Hub, tukuyin ang bagong tag upang i-pull.

docker pull ubuntu:22.04

Sa pamamagitan ng pagtukoy ng tiyak na bersyon, makakakuha ka ng tamang image.