Giunsa ang Pag-install ug Paggamit sa Docker sa Ubuntu 20.04


Ang Docker usa ka pinakasikat, open-source nga plataporma alang sa mga developers ug system administrators sa paghimo, pagpadagan, ug pagpaambit sa mga aplikasyon sa mga sudlanan. Ang Containerization (ang paggamit sa mga sudlanan sa pag-deploy sa mga aplikasyon) nahimong popular tungod kay ang mga sudlanan kay flexible, gaan, madaladala, loosely combed, scalable, ug mas luwas.

Kini nga artikulo usa ka maayong punto sa pagsugod alang sa mga nagsugod aron mahibal-an kung giunsa ang pag-install ug paggamit sa Docker sa usa ka sistema sa Ubuntu 20.04 Linux nga adunay pipila nga mga sukaranan nga mga mando. Alang niini nga giya, among i-install ang Docker Community Edition (CE).

  • Usa ka instalasyon sa Ubuntu 20.04 server.
  • Usa ka user nga adunay mga pribilihiyo sa pagpadagan sa sudo nga sugo.

Pag-instalar sa Docker sa Ubuntu 20.04

Aron magamit ang pinakabag-o nga bersyon sa Docker, among i-install kini gikan sa opisyal nga Docker repository. Busa, sugdi pinaagi sa pagdugang sa GPG nga yawe alang sa opisyal nga Docker repository sa imong sistema, human niana idugang ang repository configuration sa APT source uban sa mosunod nga mga sugo.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Karon i-update ang APT package cache aron maapil ang bag-ong Docker packages sa sistema gamit ang mosunod nga command.

$ sudo apt update

Sunod, i-install ang Docker package sama sa gipakita.

$ sudo apt install docker-ce

Atol sa proseso sa pag-instalar sa package sa Docker, ang installer sa package nag-trigger sa systemd (system ug service manager) aron awtomatiko nga magsugod ug makapahimo sa serbisyo sa docker. Gigamit ang mosunod nga mga sugo aron makumpirma nga ang serbisyo sa docker aktibo ug mahimo nga awtomatiko nga magsugod sa pagsugod sa sistema. Usab, susiha ang kahimtang niini:

$ sudo systemctl is-active docker
$ sudo systemctl is-enabled docker
$ sudo systemctl status docker

Adunay daghang uban pang mga systemctl nga mga sugo aron pagdumala ug pagkontrol sa serbisyo sa docker nga naglakip sa mosunod:

$ sudo systemctl stop docker			#stop the docker service
$ sudo systemctl start docker			#start the docker service
$ sudo systemctl  restart docker		#restart the docker service

Aron masusi ang bersyon sa Docker CE nga na-install sa imong sistema, padagana ang mosunod nga sugo:

$ docker version

Mahimo nimong tan-awon ang magamit nga mga mando sa paggamit sa docker pinaagi sa pagpadagan sa mando sa docker nga wala’y bisan unsang kapilian o argumento:

 
$ docker

Pagdumala sa Docker isip usa ka non-root User nga adunay sudo Command

Sa kasagaran, ang Docker daemon nagbugkos sa usa ka UNIX socket (imbes sa usa ka TCP port) nga gipanag-iya sa user root. Busa ang Docker daemon kanunay nga nagdagan ingon nga gamut nga tiggamit ug sa pagpadagan sa docker command, kinahanglan nimo nga gamiton ang sudo.

Gawas pa, atol sa pag-instalar sa Docker package, usa ka grupo nga gitawag og docker ang gihimo. Sa diha nga ang Docker daemon nagsugod, kini nagmugna sa usa ka UNIX socket nga ma-access sa mga miyembro sa docker nga grupo (nga naghatag ug mga pribilehiyo nga katumbas sa root user).

Sa pagpadagan sa docker command nga walay sudo, idugang ang tanang non-root users nga unta maka-access sa docker, sa docker group sama sa mosunod. Niini nga pananglitan, gidugang sa command ang kasamtangang naka-log in user ($USER) o username ngadto sa docker group:

$ sudo usermod -aG docker $USER
OR
$ sudo usermod -aG docker username

Aron ma-aktibo ang mga pagbag-o sa mga grupo, pagdagan ang mosunud nga mando:

$ newgrp docker 
$ groups

Sunod, pamatud-i nga mahimo nimong ipadagan ang mga mando sa docker nga wala sudo. Ang mosunod nga sugo nag-download sa usa ka hulagway sa pagsulay ug gipadagan kini sa usa ka sudlanan. Sa diha nga ang sudlanan nagdagan, kini nag-imprinta og usa ka impormasyon nga mensahe ug mogawas. Kini usa usab ka paagi aron masusi kung maayo ba ang imong pag-install.

$ docker run hello-world

Nagtrabaho sa Docker Images

Ang imahe sa Docker usa ka read-only nga template file nga adunay mga panudlo alang sa paghimo sa usa ka sudlanan sa Docker. Mahimo nimong mahimo ang imong naandan nga mga imahe o mahimo ra nimo gamiton ang mga gihimo sa uban ug gipatik sa Docker Hub, ang pinakadako nga librarya ug komunidad sa kalibutan alang sa mga imahe sa sulud.

Makapangita ka og centos nga hulagway sa Docker Hub gamit ang mosunod nga sugo:

$ docker search centos 

Aron ma-download ang usa ka imahe sa lokal, gamita ang pull command. Kini nga pananglitan nagpakita kung giunsa ang pag-download sa opisyal nga imahe sa centos.

$ docker pull centos

Kung kompleto na ang pag-download, mahimo nimong ilista ang magamit nga mga imahe sa imong lokal nga sistema.

$ docker images

Kung dili na nimo kinahanglan ang usa ka imahe, mahimo nimong tangtangon kini sa imong sistema.

$ docker rmi centos
OR
$ docker rmi centos:latest    #where latest is the tag

Pagdagan ug Pagdumala sa mga Docker Container

Ang usa ka sudlanan sa Docker usa ka proseso nga lumad nga nagdagan sa Linux ug gipaambit ang kernel sa host machine sa ubang mga sudlanan. Mahitungod sa usa ka Docker nga imahe, ang usa ka sudlanan usa ra ka nagdagan nga imahe.

Para makasugod ug sudlanan base sa imong bag-ong centos nga hulagway, padagana ang mosunod nga sugo diin ang \centos” mao ang lokal nga ngalan sa hulagway ug \cat /etc/centos-release mao ang sugo nga modagan sa sudlanan:

$ docker run centos cat /etc/centos-release

Ang usa ka sudlanan nagpadagan sa usa ka discrete nga proseso nga nahimulag tungod kay kini adunay kaugalingon nga: file system, networking, ug nahilit nga punoan sa proseso nga bulag sa host. Timan-i nga mahimo nimong manipulahon ang usa ka sudlanan gamit ang ID sa sudlanan, prefix sa ID, o ngalan sama sa gipakita sa ubos. Ang proseso sa sulud sa ibabaw mogawas pagkahuman sa pagdagan sa mando.

Sa paglista sa mga sudlanan sa Docker, gamita ang docker ps command sama sa mosunod. Gamita ang bandila nga -l aron ipakita ang pinakabag-o nga nabuhat nga sudlanan sa tanang estado:

$ docker ps
OR
$ docker ps -l

Aron ipakita ang tanang mga sudlanan lakip na kadtong migawas na, gamita ang -a nga bandera.

$ docker ps -a

Mahimo ka usab nga magsugod sa usa ka sudlanan gamit ang container ID niini human kini makagawas. Pananglitan, sa miaging sugo, ang among container ID mao ang 94c35e616b91. Mahimo natong sugdan ang sudlanan sama sa gipakita (timan-i nga kini modagan sa command ug exit):

$ docker start 94c35e616b91

Aron mapahunong ang nagdagan nga sudlanan gamit ang ID niini, gamita ang stop command sama sa gipakita.

$ docker stop 94c35e616b91

Gitugotan ka usab sa Docker nga magbutang usa ka ngalan sa usa ka sulud gamit ang kapilian nga --name kung gipadagan kini.

$ docker run --name my_test centos cat /etc/centos-release
$ docker ps -l

Karon mahimo nimong gamiton ang ngalan sa sudlanan sa pagdumala (pagsugod, paghunong, estadistika, pagtangtang, ug uban pa) ang sudlanan:

$ docker stop my_test
$ docker start my_test
$ docker stats my_test
$ docker rm my_test

Pagpadagan sa usa ka Interactive Session ngadto sa usa ka Docker Container

Aron maglunsad og interactive nga sesyon sa kabhang sa usa ka sudlanan aron makahimo ka sa pagpadagan sa mga sugo sulod sa sudlanan, padagana ang mosunod nga sugo:

$ docker run --name my_test -it centos

Sa sugo sa ibabaw, ang -it switch nagsulti sa Docker nga maggahin ug pseudo-TTY nga konektado sa stdin sa sudlanan sa ingon naghimo ug interactive nga bash shell sa sudlanan.

Mahimo kang mogawas pinaagi sa pag-isyu sa exit command sama sa gipakita.

# exit

Kung gusto nimo nga dili mogawas, mahimo nimong ibulag ang usa ka sudlanan ug ibilin kini nga nagdagan. Aron mahimo kana, gamita ang CTRL+p dayon CTRL+q key sequence.

Mahimo kang magkonektar balik sa sudlanan gamit ang attach command nga mag-attach sa lokal nga standard input, output, ug error streams ngadto sa running container:

$ docker attach my_test

Gawas pa, mahimo nimong sugdan ang usa ka sudlanan sa detached mode gamit ang -d nga bandera. Dayon gamita ang attach command aron i-attach ang standard input, output, ug error streams sa imong terminal ngadto sa running container:

$ docker run --name my_test -d -it centos
$ docker attach my_test

Katapusan apan dili labing gamay, mahimo nimong hunongon ang usa ka nagdagan nga sudlanan gikan sa sesyon sa host pinaagi sa pagpadagan sa mosunud nga mando:

$ docker kill my_test

Kana lang! Sa kini nga giya, gisakup namon kung giunsa ang pag-install ug paggamit sa Docker CE sa Ubuntu 20.04 Linux. Kung naa kay pangutana, gamita ang feedback form sa ubos para mangutana kanamo.