Ki jan yo enstale epi sèvi ak Docker sou Ubuntu 20.04


Docker se yon platfòm ouvè pou devlope, anbake, ak kouri aplikasyon ki itilize Virtualization nan nivo OS pou delivre lojisyèl nan pakè ki rele kontenè Containers. Yon fwa deplwaye, sèvi ak pataje resous sistèm opere lame yo. Sa vle di yo pi efikas pase hypervisors (machin vityèl) nan tèm resous sistèm. Olye pou yo virtualize pyès ki nan konpitè, resipyan yo poze sou tèt yon sèl egzanp Linux.

Nan leson patikilye sa a, ou pral aprann ki jan yo enstale epi sèvi ak Docker sou sistèm operasyon Ubuntu 20.04 ou a.

Kondisyon

  • OS rekòmande: Ubentu 20.04 - si ou vle (Ubuntu 21.04)
  • Kont itilizatè: Yon kont itilizatè ki gen aksè sudo oswa rasin.
  • Pakè obligatwa: pli

Mete ajou sistèm operasyon

Mete ajou ou Ubentu 20.04 sistèm operasyon asire w ke tout pakè ki egziste deja yo Alamòd:

sudo apt update && sudo apt upgrade

Enstale pakè obligatwa yo

Pou enstale Docker avèk siksè, w ap bezwen enstale pakè sa yo; kouri lòd sa a si ou pa sèten; li pa pral mal sistèm ou an.

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

reklam


Enstale Docker

Enpòte kle GPG ak depo

Premye etap la nan enstalasyon Docker se enpòte kle GPG la ak lòd sa a:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Egzanp pwodiksyon si siksè:

OK

Apre sa, enpòte repozitwa a nan lis sous APT ou a jan sa a:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Koulye a, rafrechi lis depo APT ou a pou reflete nouvo adisyon depo a:

sudo apt update

Enstale Docker

Avèk kle GPG ak depo enpòte, ou ka kounye a kontinye enstale Docker lè l sèvi avèk lòd sa a:

sudo apt install docker-ce

Egzanp pwodiksyon:

Ki jan yo enstale epi sèvi ak Docker sou Ubuntu 20.04

Kalite Y, Lè sa a, peze la BOUTON ANTRE kontinye ak enstalasyon an.

Apre sa, konfime enstalasyon an pa tcheke vèsyon an / bati jan sa a:

docker -v

Egzanp pwodiksyon:

Docker version 20.10.8, build 3967b7d

Yon altènatif se sèvi ak politik apt-cache:

sudo apt-cache policy docker-ce

Egzanp pwodiksyon:

Koulye a, pa default, sèvis la pou Docker ta dwe otomatikman kòmanse sou Ubuntu 20.04. Pou verifye sa, sèvi ak la kòmand estati systemctl tcheke:

systemctl status docker

Egzanp pwodiksyon:

Si pa gen yon chans Docker pa te aktive, sèvi ak lòd sa a pou kòmanse sèvis la:

sudo systemctl start docker

Pou pèmèt Docker kòmanse sou bòt sistèm, sèvi ak lòd sa a:

sudo systemctl enable docker

Kèk lòt itil kòmandman systemctl pou konnen pou Docker:

Rekòmanse Docker:

sudo systemctl restart docker

One Stop Docker:

sudo systemctl stop docker

Enfim Docker soti nan autostart sou bòt sistèm:

sudo systemctl disable docker

Si ou vle - Ajoute yon itilizatè nan Docker Group

Pa default, Docker ka itilize sèlman ak kòmandman rasin ak sudo. Pou pifò itilizatè yo, espesyalman moun ki se itilizatè yo sèlman sou sistèm operasyon an, se pa yon gwo zafè, men si ou ta elimine kòmandman siplemantè yo, ou bezwen ajoute non itilizatè ou a nan gwoup la Docker.

Egzanp:

docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.

Pou evite sa a, epi evite itilize kòmand rasin oswa sudo, ajoute non itilizatè ou a nan Docker nan li yo gwoup itilizatè. Pou fè sa, sèvi ak lòd sa a:

sudo usermod -aG docker ${USER}

Apre sa, pou aplike chanjman an, w ap bezwen dekonekte epi konekte ankò. Pou fè sa, sèvi ak lòd sa a:

su - ${USER}

Koulye a, ou ta dwe konfime ke itilizatè ou an ajoute nan la wokè gwoup pa tape:

id -nG

Egzanp pwodiksyon:

joshua sudo docker

Altènativman, pou ajoute yon lòt itilizatè nan gwoup la Docker, ou ka fè sa lè l sèvi avèk lòd sa a:

sudo usermod -aG docker username

reklam


Ki jan yo sèvi ak Docker

Kouman pou itilize kòmandman yo

Pou itilize Docker, w ap bezwen aprann opsyon ak kòmandman yo. Yon egzanp sou fason sa a sanble:

sudo docker [option] [command]

Koulye a, yon bon pwen depa se wè tout kòmandman ki disponib:

Usage:  docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Options:
      --config string      Location of client config files (default
                           "/home/joshua/.docker")
  -c, --context string     Name of the context to use to connect to the
                           daemon (overrides DOCKER_HOST env var and
                           default context set with "docker context use")
  -D, --debug              Enable debug mode
  -H, --host list          Daemon socket(s) to connect to
  -l, --log-level string   Set the logging level
                           ("debug"|"info"|"warn"|"error"|"fatal")
                           (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default
                           "/home/joshua/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default
                           "/home/joshua/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default
                           "/home/joshua/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

Management Commands:
  app*        Docker App (Docker Inc., v0.9.1-beta3)
  builder     Manage builds
  buildx*     Build with BuildKit (Docker Inc., v0.6.1-docker)
  config      Manage Docker configs
  container   Manage containers
  context     Manage contexts
  image       Manage images
  manifest    Manage Docker image manifests and manifest lists
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  scan*       Docker Scan (Docker Inc., v0.8.0)
  secret      Manage Docker secrets
  service     Manage services
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      Manage Docker
  trust       Manage trust on Docker images
  volume      Manage volumes

Commands:
  attach      Attach local standard input, output, and error streams to a running container
  build       Build an image from a Dockerfile
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  events      Get real time events from the server
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  images      List images
  import      Import the contents from a tarball to create a filesystem image
  info        Display system-wide information
  inspect     Return low-level information on Docker objects
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        Fetch the logs of a container
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  search      Search the Docker Hub for images
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     Show the Docker version information
  wait        Block until one or more containers stop, then print their exit codes

Pou wè plis enfòmasyon sou yon lòd, sèvi ak kòmandman sa a pou montre plis enfòmasyon.

sudo docker <command> --help

Pou egzanp, leson patikilye a pral montre èd enfòmasyon sou lòd pouse nan docker:

Pou wè enfòmasyon sou tout sistèm nan sou docker sou sistèm ou an, sèvi ak lòd sa a:

sudo docker info

Egzanp pwodiksyon:

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.6.1-docker)
  scan: Docker Scan (Docker Inc., v0.8.0)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.8
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: e25210fe30a0a703442421b0f60afac609f950a3
 runc version: v1.0.1-0-g4144b63
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.11.0-34-generic
 Operating System: Ubuntu 20.04.3 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 3.81GiB
 Name: ubuntu
 ID: CLA2:OOBD:5BJW:4WPT:4Y7L:ZGS6:VNIL:JGV4:ZTUA:IG3S:BGX7:Z626
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Ki jan yo teste imaj Docker yo aksesib

Pou konprann ki jan Docker travay, resipyan Docker yo bati nan imaj Docker yo rale Hub Docker ki se posede ak konsève pa konpayi an ki te kreye Docker. Docker Hub pèmèt nenpòt moun òganize imaj Docker yo, kidonk pifò aplikasyon ak distribisyon Linux yo òganize sou Hub la.

Premye tès la se asire w ke Docker Hub aksesib, epi ou ka telechaje imaj nan Docker Hub la. Pou fè sa, sèvi ak lòd sa a:

sudo docker run hello-world

Koulye a, premye bagay ou ka remake se pwodiksyon an "Pa kapab jwenn imaj 'hello-world: latest' lokalman." Pa bay tet ou pwoblem; sa a nòmal, epi tou depann de koneksyon entènèt ou a, aplikasyon an Docker ta dwe rale yon nouvo imaj soti nan Docker Hub la, depo default la.

Egzanp pwodiksyon si siksè:

Kounye a ke imaj la Docker te telechaje jan pi wo a, Docker te kreye yon nouvo veso ki soti nan imaj la yo te rele alo-mond.

Ki jan pou fè rechèch pou imaj Docker

Pou chèche imaj ki sitiye sou Docker Hub lè l sèvi avèk lòd rechèch docker.

Egzanp:

docker search ubuntu

Egzanp pwodiksyon:

Menm jan pi wo a, yon lis tout imaj ki non matche ak kòd rechèch ou te egzekite a. Apre deskripsyon an, ou ka jwenn twa kolòn.

  • STARS - Kantite vòt yo resevwa nan kominote a, pi wo toujou bon.
  • Ofisyèl - Imaj ki konstwi ak sipòte pa konpayi an Docker.
  • OTOMATIK - Imaj ki konstwi nan kominote a, konpayi Docker pa apwouve ofisyèlman. Sèvi ak pwòp risk.

Ki jan yo rale Docker Imaj

Apre w fin chèche yon imaj, ou ka rale sa yo ak la docker rale lòd.

docker pull ubuntu

Egzanp pwodiksyon:

Apre sa, verifye imaj la egziste sou sistèm ou a:

docker images

Egzanp pwodiksyon:

Kòm pi wo a, ou te resevwa a imaj ubuntu ak orijinal la alo-mond imaj ou te kreye pi bonè nan leson patikilye a pou rezon tès. Pwodiksyon an tou bay enfòmasyon sou tag, id imaj, kreyasyon, ak gwosè.

Ki jan yo kouri yon veso Docker soti nan imaj

Kounye a ke ou te aprann Basics yo, ou ka kounye a kouri imaj ubuntu ou telechaje a. Pou fè sa, sèvi ak lòd sa a ak drapo a -it ki pral pèmèt ou jwenn aksè ak veso a lè l sèvi avèk aksè koki:

docker run -it ubuntu

Remake byen, menm jan ak la bonjou-pawòl egzanp, si yon imaj pa te telechaje, la docker kouri lòd se egzekite, kliyan an Docker pral premye telechaje imaj la epi kouri veso a lè l sèvi avèk li.

Ou pral kounye a nan veso koki a, jan ou ka wè ak pwodiksyon sa a:

root@75b1115bacfd:/# 

Pwodiksyon an ap montre ou ID veso, ki nan ka tutoryèl la se 75b1115bacfd. Tanpri sonje ID sa a, paske w ap bezwen li pou rezon jesyon, tankou retire veso a nan yon etap pita.

Ki jan yo enstale yon pake nan Docker Container

Pou enstale pakè andedan veso Docker ou a se byen fasil; li se fondamantalman menm jan ak opere nan sistèm prensipal Ubuntu ou a.

Pou egzanp, ou ka teste lè w enstale kèk pakè.

Enstale aplikasyon entènèt Nginx:

apt install nginx

Egzanp pwodiksyon:

Kalite Y, Lè sa a, peze la BOUTON ANTRE kontinye ak enstalasyon an.

Ou pral gen plis chans resevwa yon èd memwa pou chwazi zòn jeyografik ou lè w ap enstale yon pake pou premye fwa.

Egzanp:

Chwazi kote jeyografik ki pi pre w la lè w tape nimewo a epi klike sou la ANTRE KLE.

Apre sa, yo pral mande w chwazi vil la klozèt; menm jan ak kote jeyografik la, chwazi kote klozèt la epi frape la ANTRE KLE.

Egzanp:

Verifye enstalasyon Nginx sou veso Docker ou a lè l sèvi avèk lòd vèsyon sa a:

nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

Ki jan yo mete ajou pakè nan Docker Container

Pou mete ajou pakè andedan veso Docker la, ou ka itilize kòmandman apt update san sudo oswa root paske ou deja opere kòm itilizatè rasin veso a.

Egzanp:

apt update

Lè sa a, ajou jan ou ta tankou si ou te opere nan sistèm operasyon Ubuntu ou a:

apt upgrade 

Ki jan yo retire pakè nan Docker Container

Pwosesis pou retire pakè nan veso Docker ou a se menm jan ak enstale yo sou veso ou a. Pou retire pake ou enstale anvan an, pou egzanp nou an li te Nginx, sèvi ak lòd sa a:

apt autoremove nginx

Egzanp pwodiksyon:

Kalite Y, Lè sa a, peze la BOUTON ANTRE kontinye ak dezenstalasyon an.

Ki jan yo sòti Docker Container

Pou sòti veso Docker ou a, sèvi ak lòd sa a:

exit

Ki jan yo fè lis Docker Containers

Kounye a ke ou te sòti kòm pi wo a tounen nan sistèm opere prensipal ou a. Ou ka itilize docker ps kòmand ki pral lis lòd Docker aktive nan sistèm ou a:

sudo docker ps

Egzanp pwodiksyon:

Yon kòmand altènatif se sèvi ak la docker ps ak nan -yon drapo, ak sa a pral lis tout resipyan Docker ki aktif ak inaktif.

sudo docker ps -a

Egzanp pwodiksyon:

Kòm ou ka wè pi wo a, gen yon veso ki aktif ak de ki pa aktif.

Yon lòt kòmand sou la men se docker ps ak la -l drapo, lis dènye veso ki te kreye a.

sudo docker ps -l

Egzanp pwodiksyon:

Remake non veso yo; ou ka itilize sa yo olye pou yo IDS veso yo; pou egzanp, pi wo a, ID veso 5c9785bbfd75 yo nonmen musing_lehmann.

Ki jan yo kòmanse yon veso Docker

Pou kòmanse yon veso Docker, ou bezwen jwenn la ID veso ki, si yo bliye, ka byen vit jwenn lè l sèvi avèk lòd la docker ps. Apre sa, egzekite lòd sa a kòm yon egzanp kòmanse yon veso:

sudo docker start 5c9785bbfd75

Pou verifye estati a pou wè si li aktif, sèvi ak lòd docker ps la:

sudo docker ps

Egzanp pwodiksyon:

Kòm ou ka wè, ID veso 5c9785bbfd75 a aktif kounye a.

Ki jan yo sispann yon veso Docker

Pou sispann yon veso Docker se menm jan ak kòmanse veso a, men nan ranvèse ak opsyon a sispann itilize.

sudo docker stop 5c9785bbfd75

Koulye a, sèvi ak lòd la docker ps ankò pou wè estati a:

Egzanp pwodiksyon:

Kòm pi wo a, ou ka wè ID veso 5c9785bbfd75 la kounye a inaktif.

Ki jan yo retire yon veso Docker

Yon fwa ou fini oswa ou pa bezwen veso a ankò, ou ka retire li lè l sèvi avèk kòmandman docker rm ak la ID veso oswa nan non veso. Pa egzanp, retire veso tès la alo-mond.

sudo docker rm 7f00ad33be63

Altènativman, ou ka efase ID veso ou pa non Docker te bay la. Nan leson patikilye a, la ID veso 7f00ad33be63 (resipyan bonjou mond) yo rele nifty_gagarin. Pou retire li, sèvi ak sa ki annapre yo:

sudo docker rm nifty_gagarin

Egzanp pwodiksyon:

Kòmantè ak konklizyon

Nan leson patikilye a, ou te aprann ki jan yo enstale Docker sou Ubuntu 20.04, travay ak imaj ak resipyan. Soti isit la, ou ka kontinye aprann sou fason pouse ak komèt chanjman nan Docker Hub la si ou bezwen pataje oswa tounen imaj yo. Pou enskri pou yon kont gratis, e pifò plan yo trè abòdab, ak biznis ki pi wo a nan 21 dola; si enterese, vizite paj enskripsyon an epi kreye yon kont.

An jeneral, Docker se trè popilè kòm li revolisyone fason devlopman yo fèt jou sa yo ak fasilite li yo nan itilizasyon, sekirite, ak kondisyon resous fizik yo se mwens nan yon machin vityèl jan yo wè platfòm la monte nan endistri lojisyèl an. Deba a kounye a rage sou ki pi an sekirite ant machin vityèl ak docker. Sepandan, tou de ka danjere, ak bon pratik ka sispann pifò pwoblèm sekirite ak kèlkeswa virtualizasyon ou chwazi.

1 panse sou "Kijan Pou Enstale ak Sèvi ak Docker sou Ubuntu 20.04"

Leave a Comment