GAGA LIFE.

インフラエンジニアブログ

スポンサーリンク

稼働中のDockerコンテナ操作

docker container attach(稼働コンテナへの接続)

例:コンテナへの接続

$ docker container attach sample

docker container exec(稼働コンテナでプロセス実行)

$ docker container exec [オプション] コンテナ識別子 実行するコマンド [引数]
Options Description
--detach,-d コマンドをバックグラウンドで実行する
--interactive,-i コンテナの標準入力を開く
--tty,-t tty(端末デバイス)を使う
--user,-u ユーザー名を指定

実行例:コンテナでのbash実行

docker@LesPaul:~$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
ac5135fb6709        nginx               "nginx -g 'daemon of…"   2 days ago          Up 2 days           80/tcp               webap
dd72a792e0a7        nginx               "nginx -g 'daemon of…"   2 days ago          Up 2 days           0.0.0.0:80->80/tcp   webfront
docker@LesPaul:~$ docker container exec -it webfront /bin/bash
root@dd72a792e0a7:/# 

実行例:コンテナでのecho実行

docker@LesPaul:~$ docker container exec -it webfront /bin/echo "Hello world"
Hello world

docker container top(稼働コンテナのプロセス確認)

実行例:プロセス確認

docker@LesPaul:~$ docker container top webfront
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                4085                4065                0                   1021               ?                   00:00:00            nginx: master process nginx -g daemon off;
systemd+            4148                4085                0                   1021               ?                   00:00:00            nginx: worker process

docker container port(稼働コンテナのポート転送確認)

実行例:コンテナのポート転送

docker@LesPaul:~$ docker container port webfront
80/tcp -> 0.0.0.0:80

docker container rename(コンテナの名前変更)

docker@LesPaul:~$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
17d9b662dd39        centos              "/bin/bash"              3 minutes ago       Up 3 seconds                             old
docker@LesPaul:~$ docker container rename old new
docker@LesPaul:~$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
17d9b662dd39        centos              "/bin/bash"              4 minutes ago       Up About a minute                        new

docker container cp(コンテナ内のファイルをコピー)

$ docker container cp コンテナ識別子:コンテナ内のファイルパス ホストのディレクトリパス
$ docker container cp ホストのファイル コンテナ識別子:コンテナ内のファイルパス

実行例:コンテナからホストへのファイルコピー

docker@LesPaul:~$ docker container cp webserver:/etc/nginx/nginx.conf /tmp/nginx.conf
docker@LesPaul:~$ ls -la /tmp/nginx.conf 
-rw-r--r-- 1 docker docker 643 102 23:49 /tmp/nginx.conf

例:ホストからコンテナへのファイルコピー

$ docker container cp ./test.txt webserver:/tmp/test.txt

docker container diff(コンテナ操作の差分確認)

$ docker container diff コンテナ識別子
Classification Description
A ファイル追加
D ファイル削除
C ファイル更新

実行例:コンテナで新規ユーザー作成->変更箇所確認

docker@LesPaul:~$ docker container exec -it new /bin/bash
[root@17d9b662dd39 /]# useradd newuser
[root@17d9b662dd39 /]# exit
exit
docker@LesPaul:~$ docker container diff new
C /home
A /home/newuser
A /home/newuser/.bashrc
A /home/newuser/.bash_logout
A /home/newuser/.bash_profile
C /root
A /root/.bash_history
C /var
C /var/spool
C /var/spool/mail
A /var/spool/mail/newuser
C /var/log
C /var/log/lastlog
C /etc
C /etc/shadow-
C /etc/group
C /etc/shadow
C /etc/gshadow-
C /etc/passwd-
C /etc/group-
C /etc/passwd
C /etc/gshadow

参考資料

https://docs.docker.com/engine/reference/commandline/attach/
https://docs.docker.com/engine/reference/commandline/exec/#options
https://docs.docker.com/engine/reference/commandline/top/
https://docs.docker.com/engine/reference/commandline/port/
https://docs.docker.com/engine/reference/commandline/rename/
https://docs.docker.com/engine/reference/commandline/cp/
https://docs.docker.com/engine/reference/commandline/diff/

スポンサーリンク