Docker compose kasutamine: erinevus redaktsioonide vahel

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
Resümee puudub
 
(ei näidata sama kasutaja 8 vahepealset redaktsiooni)
14. rida: 14. rida:
# cat docker-compose-nginx.yml  
# cat docker-compose-nginx.yml  
services:
services:
   service_nginx:
   svc_nginx:
     image: nginx:latest
     image: nginx:latest
    environment:
      - TZ=Europe/Tallinn
     ports:
     ports:
     - "8011:80"
     - "8011:80"
   
   
     container_name: dc_nginx
     container_name: cn_nginx
    
    
    volumes:
      - /srv/nginx/volume/etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
     networks:
     networks:
       - nw_nginx
       - nw_nginx
29. rida: 36. rida:
     driver: bridge
     driver: bridge
</pre>
</pre>
kus
* tundub, et uuemal ajal ei ole asjakohane compose failis kasutada rida 'version: xxx'


Kasutamiseks sobib öelda
Kasutamiseks sobib öelda
35. rida: 46. rida:
$ docker compose -f docker-compose-nginx.yml up
$ docker compose -f docker-compose-nginx.yml up
[+] Running 2/2
[+] Running 2/2
  ✔ Network nw_nginx    Created                                                                                                                                                                                                   0.1s  
  ✔ Network nw_nginx    Created   0.1s  
  ✔ Container dc_nginx Created                                                                                                                                                                                                   0.1s  
  ✔ Container cn_nginx Created   0.1s  
Attaching to dc_nginx
Attaching to cn_nginx
dc_nginx  | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
dc_nginx  | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
dc_nginx  | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
dc_nginx  | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
60. rida: 71. rida:
# docker container ls
# docker container ls
CONTAINER ID  IMAGE            COMMAND                  CREATED          STATUS        PORTS                    NAMES
CONTAINER ID  IMAGE            COMMAND                  CREATED          STATUS        PORTS                    NAMES
78a420d0f791  nginx:latest      "/docker-entrypoint.…"  43 minutes ago  Up 1 second  0.0.0.0:8011->80/tcp      dc_nginx
78a420d0f791  nginx:latest      "/docker-entrypoint.…"  43 minutes ago  Up 1 second  0.0.0.0:8011->80/tcp      cn_nginx
</pre>
 
Konteineri ja võrgu kustutamiseks sobib öelda
 
<pre>
$ docker compose -f docker-compose-nginx.yml down
[+] Running 2/2
✔ Container cn_nginx  Removed    0.3s
✔ Network nw_nginx    Removed    0.1s
</pre>
 
===Logimine===
 
Konteineri sees
 
<pre>
root@dh-post:~# docker exec -ti 53 bash
 
root@5346ca828019:/# ps aux
USER        PID %CPU %MEM    VSZ  RSS TTY      STAT START  TIME COMMAND
root          1  0.0  0.1  14884  7608 ?        Ss  Jul05  0:00 nginx: master process nginx -g daemon off;
nginx        29  0.0  0.0  15340  3516 ?        S    Jul05  0:00 nginx: worker process
nginx        30  0.0  0.0  15340  3516 ?        S    Jul05  0:00 nginx: worker process
nginx        31  0.0  0.0  15340  3516 ?        S    Jul05  0:00 nginx: worker process
nginx        32  0.0  0.0  15340  3516 ?        S    Jul05  0:00 nginx: worker process
root        253  0.0  0.0  4320  3844 pts/0    Ss+  Jul05  0:00 bash
root        280  0.9  0.0  4320  3692 pts/2    Ss  09:59  0:00 bash
root        286  0.0  0.0  6388  3760 pts/2    R+  09:59  0:00 ps aux
 
root@5346ca828019:/# lsof -p 1 -P -n
COMMAND PID USER  FD  TYPE            DEVICE SIZE/OFF    NODE NAME
nginx    1 root cwd    DIR              0,68      38  3528403 /
nginx    1 root rtd    DIR              0,68      38  3528403 /
nginx    1 root txt    REG              0,68  1683584  3126357 /usr/sbin/nginx
nginx    1 root mem    REG              0,41          3126357 /usr/sbin/nginx (path dev=0,68)
nginx    1 root mem    REG              0,41          3123196 /usr/lib/x86_64-linux-gnu/libzstd.so.1.5.7 (path dev=0,68)
nginx    1 root mem    REG              0,41          3123113 /usr/lib/x86_64-linux-gnu/libc.so.6 (path dev=0,68)
nginx    1 root mem    REG              0,41          3123194 /usr/lib/x86_64-linux-gnu/libz.so.1.3.1 (path dev=0,68)
nginx    1 root mem    REG              0,41          3123121 /usr/lib/x86_64-linux-gnu/libcrypto.so.3 (path dev=0,68)
nginx    1 root mem    REG              0,41          3123176 /usr/lib/x86_64-linux-gnu/libssl.so.3 (path dev=0,68)
nginx    1 root mem    REG              0,41          3123161 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.14.0 (path dev=0,68)
nginx    1 root mem    REG              0,41          3123120 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 (path dev=0,68)
nginx    1 root DEL    REG                0,1              1025 /dev/zero
nginx    1 root mem    REG              0,41          3123093 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 (path dev=0,68)
nginx    1 root  0u  CHR                1,3      0t0        5 /dev/null
nginx    1 root  1w  FIFO              0,13      0t0 10873651 pipe
nginx    1 root  2w  FIFO              0,13      0t0 10873652 pipe
nginx    1 root  3u  unix 0x00000000a3184a13      0t0 10875931 type=STREAM (CONNECTED)
nginx    1 root  4w  FIFO              0,13      0t0 10873652 pipe
nginx    1 root  5w  FIFO              0,13      0t0 10873651 pipe
nginx    1 root  6u  IPv4          10875929      0t0      TCP *:80 (LISTEN)
nginx    1 root  7u  IPv6          10875930      0t0      TCP *:80 (LISTEN)
nginx    1 root  8u  unix 0x00000000dc7fdbea      0t0 10875932 type=STREAM (CONNECTED)
nginx    1 root  9u  unix 0x0000000036947168      0t0 10875933 type=STREAM (CONNECTED)
nginx    1 root  10u  unix 0x00000000d3bf8d5c      0t0 10875934 type=STREAM (CONNECTED)
nginx    1 root  11u  unix 0x0000000050db47c2      0t0 10875935 type=STREAM (CONNECTED)
nginx    1 root  12u  unix 0x000000008ed04f9a      0t0 10875936 type=STREAM (CONNECTED)
nginx    1 root  13u  unix 0x000000002c91e410      0t0 10875937 type=STREAM (CONNECTED)
nginx    1 root  14u  unix 0x00000000fc81b5b0      0t0 10875938 type=STREAM (CONNECTED)
</pre>
 
kus
 
* TODO
 
dockerhost peal
 
<pre>
root@dh-post:~# lsof -n -P 2>&1 | grep 10873651
container 3235355                              root    3r    FIFO              0,13      0t0  10873651 pipe
container 3235355 3235356 container            root    3r    FIFO              0,13      0t0  10873651 pipe
container 3235355 3235357 container            root    3r    FIFO              0,13      0t0  10873651 pipe
container 3235355 3235358 container            root    3r    FIFO              0,13      0t0  10873651 pipe
container 3235355 3235359 container            root    3r    FIFO              0,13      0t0  10873651 pipe
container 3235355 3235360 container            root    3r    FIFO              0,13      0t0  10873651 pipe
container 3235355 3235361 container            root    3r    FIFO              0,13      0t0  10873651 pipe
container 3235355 3235362 container            root    3r    FIFO              0,13      0t0  10873651 pipe
container 3235355 3235363 container            root    3r    FIFO              0,13      0t0  10873651 pipe
container 3235355 3235364 container            root    3r    FIFO              0,13      0t0  10873651 pipe
container 3235355 3236396 container            root    3r    FIFO              0,13      0t0  10873651 pipe
nginx    3235379                              root    1w    FIFO              0,13      0t0  10873651 pipe
nginx    3235379                              root    5w    FIFO              0,13      0t0  10873651 pipe
nginx    3235458                    systemd-network    1w    FIFO              0,13      0t0  10873651 pipe
nginx    3235458                    systemd-network    5w    FIFO              0,13      0t0  10873651 pipe
nginx    3235459                    systemd-network    1w    FIFO              0,13      0t0  10873651 pipe
nginx    3235459                    systemd-network    5w    FIFO              0,13      0t0  10873651 pipe
nginx    3235460                    systemd-network    1w    FIFO              0,13      0t0  10873651 pipe
nginx    3235460                    systemd-network    5w    FIFO              0,13      0t0  10873651 pipe
nginx    3235461                    systemd-network    1w    FIFO              0,13      0t0  10873651 pipe
nginx    3235461                    systemd-network    5w    FIFO              0,13      0t0  10873651 pipe
 
root@dh-post:~# ps aux | grep -A 1 3235355
root    3235355  0.0  0.2 1235608 12780 ?      Sl  Jul05  0:03 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 5346ca828019f72091abce7126602450428a069de940c004500657906a8354b5 -address /run/containerd/containerd.sock
root    3235379  0.0  0.1  14884  7608 ?        Ss  Jul05  0:00 nginx: master process nginx -g daemon off;
</pre>
</pre>
kus
* node '10873651' väärtus on globaalne, st konteineri ja dockerhost vaates jääb see samaks, see on seotud docker sees stdout peale logi kirjutava protsessi väljundis oleva pipe'iga
* selle stdout pipe üks ots on kinnitatud konteineris töötava protsessi külje ja teine dockerhostis töötava protsessi külge - kusjuures konteineris on ta märkega 'w' (write) ja dockerhostis märkega 'r' (read)
* konteineri logimine on lahendatud mitte character device'idega, aga pipe'idega jõudluse, elegantsuse jms kaalutlustel
* pipe suhtlus on peaaegu interrupt vaba (erinevalt char device'ist)
* pipe on vaikimisi 'blocking' - st kui üks pool ei jõua vastu võtta, siis teine pool automaatselt pidurdab oma tegevusi (teoreetliselt võiks nginx omakorda vähem oma http kliente teenindada kui ei saada teisse otsa ära logida)


===Kasulikud lisamaterjalid===
===Kasulikud lisamaterjalid===


* TODO
* https://medium.com/@kesaralive/diving-deeper-into-docker-networking-with-docker-compose-737e3b8a3c8c

Viimane redaktsioon: 6. juuli 2026, kell 07:06

Sissejuhatus

TODO

Tööpõhimõte

TODO

Käsundamine

Isikliku võrgu jms ressurssidega konteineri tekitamine

# cat docker-compose-nginx.yml 
services:
  svc_nginx:
    image: nginx:latest

    environment:
      - TZ=Europe/Tallinn

    ports:
     - "8011:80"
 
    container_name: cn_nginx
   
    volumes:
      - /srv/nginx/volume/etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro

    networks:
      - nw_nginx
     
networks:
  nw_nginx:
    name: nw_nginx
    driver: bridge

kus

  • tundub, et uuemal ajal ei ole asjakohane compose failis kasutada rida 'version: xxx'

Kasutamiseks sobib öelda

$ docker compose -f docker-compose-nginx.yml up
[+] Running 2/2
 ✔ Network nw_nginx    Created   0.1s 
 ✔ Container cn_nginx  Created   0.1s 
Attaching to cn_nginx
dc_nginx  | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
dc_nginx  | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
dc_nginx  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
...

Ning tulemusena on moodustunud sellised ressursid

$ docker network ls
NETWORK ID     NAME                   DRIVER    SCOPE
3fe6d3988e37   bridge                 bridge    local
617b4a0d5de5   host                   host      local
d4743d12eb6a   none                   null      local
67a9effbfa9b   nw_nginx               bridge    local

ning

# docker container ls
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS        PORTS                     NAMES
78a420d0f791   nginx:latest      "/docker-entrypoint.…"   43 minutes ago   Up 1 second   0.0.0.0:8011->80/tcp      cn_nginx

Konteineri ja võrgu kustutamiseks sobib öelda

$ docker compose -f docker-compose-nginx.yml down
[+] Running 2/2
 ✔ Container cn_nginx  Removed    0.3s 
 ✔ Network nw_nginx    Removed    0.1s

Logimine

Konteineri sees

root@dh-post:~# docker exec -ti 53 bash

root@5346ca828019:/# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.1  14884  7608 ?        Ss   Jul05   0:00 nginx: master process nginx -g daemon off;
nginx         29  0.0  0.0  15340  3516 ?        S    Jul05   0:00 nginx: worker process
nginx         30  0.0  0.0  15340  3516 ?        S    Jul05   0:00 nginx: worker process
nginx         31  0.0  0.0  15340  3516 ?        S    Jul05   0:00 nginx: worker process
nginx         32  0.0  0.0  15340  3516 ?        S    Jul05   0:00 nginx: worker process
root         253  0.0  0.0   4320  3844 pts/0    Ss+  Jul05   0:00 bash
root         280  0.9  0.0   4320  3692 pts/2    Ss   09:59   0:00 bash
root         286  0.0  0.0   6388  3760 pts/2    R+   09:59   0:00 ps aux

root@5346ca828019:/# lsof -p 1 -P -n
COMMAND PID USER  FD   TYPE             DEVICE SIZE/OFF     NODE NAME
nginx     1 root cwd    DIR               0,68       38  3528403 /
nginx     1 root rtd    DIR               0,68       38  3528403 /
nginx     1 root txt    REG               0,68  1683584  3126357 /usr/sbin/nginx
nginx     1 root mem    REG               0,41           3126357 /usr/sbin/nginx (path dev=0,68)
nginx     1 root mem    REG               0,41           3123196 /usr/lib/x86_64-linux-gnu/libzstd.so.1.5.7 (path dev=0,68)
nginx     1 root mem    REG               0,41           3123113 /usr/lib/x86_64-linux-gnu/libc.so.6 (path dev=0,68)
nginx     1 root mem    REG               0,41           3123194 /usr/lib/x86_64-linux-gnu/libz.so.1.3.1 (path dev=0,68)
nginx     1 root mem    REG               0,41           3123121 /usr/lib/x86_64-linux-gnu/libcrypto.so.3 (path dev=0,68)
nginx     1 root mem    REG               0,41           3123176 /usr/lib/x86_64-linux-gnu/libssl.so.3 (path dev=0,68)
nginx     1 root mem    REG               0,41           3123161 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.14.0 (path dev=0,68)
nginx     1 root mem    REG               0,41           3123120 /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0 (path dev=0,68)
nginx     1 root DEL    REG                0,1              1025 /dev/zero
nginx     1 root mem    REG               0,41           3123093 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 (path dev=0,68)
nginx     1 root   0u   CHR                1,3      0t0        5 /dev/null
nginx     1 root   1w  FIFO               0,13      0t0 10873651 pipe
nginx     1 root   2w  FIFO               0,13      0t0 10873652 pipe
nginx     1 root   3u  unix 0x00000000a3184a13      0t0 10875931 type=STREAM (CONNECTED)
nginx     1 root   4w  FIFO               0,13      0t0 10873652 pipe
nginx     1 root   5w  FIFO               0,13      0t0 10873651 pipe
nginx     1 root   6u  IPv4           10875929      0t0      TCP *:80 (LISTEN)
nginx     1 root   7u  IPv6           10875930      0t0      TCP *:80 (LISTEN)
nginx     1 root   8u  unix 0x00000000dc7fdbea      0t0 10875932 type=STREAM (CONNECTED)
nginx     1 root   9u  unix 0x0000000036947168      0t0 10875933 type=STREAM (CONNECTED)
nginx     1 root  10u  unix 0x00000000d3bf8d5c      0t0 10875934 type=STREAM (CONNECTED)
nginx     1 root  11u  unix 0x0000000050db47c2      0t0 10875935 type=STREAM (CONNECTED)
nginx     1 root  12u  unix 0x000000008ed04f9a      0t0 10875936 type=STREAM (CONNECTED)
nginx     1 root  13u  unix 0x000000002c91e410      0t0 10875937 type=STREAM (CONNECTED)
nginx     1 root  14u  unix 0x00000000fc81b5b0      0t0 10875938 type=STREAM (CONNECTED)

kus

  • TODO

dockerhost peal

root@dh-post:~# lsof -n -P 2>&1 | grep 10873651
container 3235355                               root    3r     FIFO               0,13       0t0   10873651 pipe
container 3235355 3235356 container             root    3r     FIFO               0,13       0t0   10873651 pipe
container 3235355 3235357 container             root    3r     FIFO               0,13       0t0   10873651 pipe
container 3235355 3235358 container             root    3r     FIFO               0,13       0t0   10873651 pipe
container 3235355 3235359 container             root    3r     FIFO               0,13       0t0   10873651 pipe
container 3235355 3235360 container             root    3r     FIFO               0,13       0t0   10873651 pipe
container 3235355 3235361 container             root    3r     FIFO               0,13       0t0   10873651 pipe
container 3235355 3235362 container             root    3r     FIFO               0,13       0t0   10873651 pipe
container 3235355 3235363 container             root    3r     FIFO               0,13       0t0   10873651 pipe
container 3235355 3235364 container             root    3r     FIFO               0,13       0t0   10873651 pipe
container 3235355 3236396 container             root    3r     FIFO               0,13       0t0   10873651 pipe
nginx     3235379                               root    1w     FIFO               0,13       0t0   10873651 pipe
nginx     3235379                               root    5w     FIFO               0,13       0t0   10873651 pipe
nginx     3235458                    systemd-network    1w     FIFO               0,13       0t0   10873651 pipe
nginx     3235458                    systemd-network    5w     FIFO               0,13       0t0   10873651 pipe
nginx     3235459                    systemd-network    1w     FIFO               0,13       0t0   10873651 pipe
nginx     3235459                    systemd-network    5w     FIFO               0,13       0t0   10873651 pipe
nginx     3235460                    systemd-network    1w     FIFO               0,13       0t0   10873651 pipe
nginx     3235460                    systemd-network    5w     FIFO               0,13       0t0   10873651 pipe
nginx     3235461                    systemd-network    1w     FIFO               0,13       0t0   10873651 pipe
nginx     3235461                    systemd-network    5w     FIFO               0,13       0t0   10873651 pipe

root@dh-post:~# ps aux | grep -A 1 3235355
root     3235355  0.0  0.2 1235608 12780 ?       Sl   Jul05   0:03 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 5346ca828019f72091abce7126602450428a069de940c004500657906a8354b5 -address /run/containerd/containerd.sock
root     3235379  0.0  0.1  14884  7608 ?        Ss   Jul05   0:00 nginx: master process nginx -g daemon off;

kus

  • node '10873651' väärtus on globaalne, st konteineri ja dockerhost vaates jääb see samaks, see on seotud docker sees stdout peale logi kirjutava protsessi väljundis oleva pipe'iga
  • selle stdout pipe üks ots on kinnitatud konteineris töötava protsessi külje ja teine dockerhostis töötava protsessi külge - kusjuures konteineris on ta märkega 'w' (write) ja dockerhostis märkega 'r' (read)
  • konteineri logimine on lahendatud mitte character device'idega, aga pipe'idega jõudluse, elegantsuse jms kaalutlustel
  • pipe suhtlus on peaaegu interrupt vaba (erinevalt char device'ist)
  • pipe on vaikimisi 'blocking' - st kui üks pool ei jõua vastu võtta, siis teine pool automaatselt pidurdab oma tegevusi (teoreetliselt võiks nginx omakorda vähem oma http kliente teenindada kui ei saada teisse otsa ära logida)

Kasulikud lisamaterjalid