Docker compose kasutamine: erinevus redaktsioonide vahel

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
Resümee puudub
 
(ei näidata sama kasutaja 3 vahepealset redaktsiooni)
16. rida: 16. rida:
 
svc_nginx:
 
svc_nginx:
 
image: nginx:latest
 
image: nginx:latest
  +
  +
environment:
  +
- TZ=Europe/Tallinn
  +
 
ports:
 
ports:
 
- "8011:80"
 
- "8011:80"
21. rida: 25. rida:
 
container_name: cn_nginx
 
container_name: cn_nginx
 
 
  +
volumes:
  +
- /srv/nginx/volume/etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
  +
 
networks:
 
networks:
 
- nw_nginx
 
- nw_nginx
75. rida: 82. rida:
 
✔ Network nw_nginx Removed 0.1s
 
✔ Network nw_nginx Removed 0.1s
 
</pre>
 
</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>
  +
  +
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===

Viimane redaktsioon: 6. juuli 2026, kell 10: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