amegonの雑なブログ

日常的なものから技術的なものまでメモの雑記

docker-compose でよく使用するコマンド

目的

すぐにコマンドがわからなくなるので、よく使うやつを自分用にまとめておきます。
一部 docker コマンドも記載しています。

公式

基本はここで確認しましょう。

https://docs.docker.jp/index.html

コンテナの起動

サービス用のコンテナを構築、作成、起動、アタッチする
docker-compose.yml と同ディレクトリ内で以下のコマンドを実行

docker-compose up

バックグラウンド実行する場合は -d オプションをつけて実行

docker-compose up -d

コンテナを選択して実行する場合は最後にサービス名をつけて実行

docker-compose up -d <コンテナ名>

実行例

NAME      IMAGE     COMMAND   SERVICE   CREATED   STATUS    PORTS
[root@test244 redmine]#
[root@test244 redmine]# docker-compose up -d
[+] Building 0.0s (0/0)                                              docker:default
[+] Running 2/2
 ? Container redmine-db-4.0.4  Started                                         0.1s
 ? Container redmine-4.0.4     Started                                         0.1s
[root@test244 redmine]#
[root@test244 redmine]# docker-compose ps -a
NAME               IMAGE                  COMMAND                                                                                        SERVICE            CREATED         STATUS         PORTS
redmine-4.0.4      redmine:4.0.4-alpine   "/docker-entrypoint.sh rails server -b 0.0.0.0"                                                redmine            4 seconds ago   Up 3 seconds   0.0.0.0:8080->3000/tcp, :::8080->3000/tcp
redmine-db-4.0.4   mariadb:10.8.2         "docker-entrypoint.sh mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci"   redmine-db-4.0.4   4 seconds ago   Up 3 seconds   3306/tcp
[root@test244 redmine]#

コンテナを削除せずに停止

docker-compose.yml と同ディレクトリ内で以下のコマンドを実行

docker-compose stop

コンテナを選択して実行する場合は最後にサービス名をつけて実行

docker-compose stop <コンテナ名>

実行例

[root@test244 redmine]# docker-compose ps
NAME               IMAGE                  COMMAND                                                                                        SERVICE            CREATED          STATUS          PORTS
redmine-4.0.4      redmine:4.0.4-alpine   "/docker-entrypoint.sh rails server -b 0.0.0.0"                                                redmine            25 seconds ago   Up 23 seconds   0.0.0.0:8080->3000/tcp, :::8080->3000/tcp
redmine-db-4.0.4   mariadb:10.8.2         "docker-entrypoint.sh mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci"   redmine-db-4.0.4   25 seconds ago   Up 23 seconds   3306/tcp
[root@test244 redmine]#
[root@test244 redmine]# docker-compose stop
[+] Stopping 2/2
 ? Container redmine-db-4.0.4  Stopped                                         0.9s
 ? Container redmine-4.0.4     Stopped                                         0.7s
[root@test244 redmine]#
[root@test244 redmine]# docker-compose ps
NAME      IMAGE     COMMAND   SERVICE   CREATED   STATUS    PORTS
[root@test244 redmine]#
[root@test244 redmine]# docker-compose ps -a
NAME               IMAGE                  COMMAND                                                                                        SERVICE            CREATED          STATUS                     PORTS
redmine-4.0.4      redmine:4.0.4-alpine   "/docker-entrypoint.sh rails server -b 0.0.0.0"                                                redmine            47 seconds ago   Exited (1) 8 seconds ago
redmine-db-4.0.4   mariadb:10.8.2         "docker-entrypoint.sh mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci"   redmine-db-4.0.4   47 seconds ago   Exited (0) 8 seconds ago
[root@test244 redmine]#

コンテナ停止 & コンテナ、ネットワーク、ボリューム、イメージを削除

docker-compose down

コンテナを選択して実行する場合は最後にサービス名をつけて実行

docker-compose down <コンテナ名>

実行例

[root@test244 redmine]# docker-compose ps
NAME               IMAGE                  COMMAND                                                                                        SERVICE            CREATED              STATUS          PORTS
redmine-4.0.4      redmine:4.0.4-alpine   "/docker-entrypoint.sh rails server -b 0.0.0.0"                                                redmine            About a minute ago   Up 9 seconds    0.0.0.0:8080->3000/tcp, :::8080->3000/tcp
redmine-db-4.0.4   mariadb:10.8.2         "docker-entrypoint.sh mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci"   redmine-db-4.0.4   About a minute ago   Up 10 seconds   3306/tcp
[root@test244 redmine]#
[root@test244 redmine]# docker-compose down
[+] Running 3/3
 ? Container redmine-db-4.0.4  Removed                                         0.5s
 ? Container redmine-4.0.4     Removed                                         0.4s
 ? Network redmine_default     Removed                                         0.3s
[root@test244 redmine]#
[root@test244 redmine]# docker-compose ps
NAME      IMAGE     COMMAND   SERVICE   CREATED   STATUS    PORTS
[root@test244 redmine]#
[root@test244 redmine]# docker-compose ps -a
NAME      IMAGE     COMMAND   SERVICE   CREATED   STATUS    PORTS
[root@test244 redmine]#

コンテナを強制終了

強制終了するのみでコンテナの削除は実施されない。

docker-compose kill

実行例

[root@test244 redmine]# docker-compose ps
NAME               IMAGE                  COMMAND                                                                                        SERVICE            CREATED         STATUS         PORTS
redmine-4.0.4      redmine:4.0.4-alpine   "/docker-entrypoint.sh rails server -b 0.0.0.0"                                                redmine            4 seconds ago   Up 2 seconds   0.0.0.0:8080->3000/tcp, :::8080->3000/tcp
redmine-db-4.0.4   mariadb:10.8.2         "docker-entrypoint.sh mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci"   redmine-db-4.0.4   4 seconds ago   Up 2 seconds   3306/tcp
[root@test244 redmine]#
[root@test244 redmine]# docker-compose kill
[+] Killing 2/2
 ? Container redmine-db-4.0.4  Killed                                          0.3s
 ? Container redmine-4.0.4     Killed                                          0.4s
[root@test244 redmine]#
[root@test244 redmine]# docker-compose ps
NAME      IMAGE     COMMAND   SERVICE   CREATED   STATUS    PORTS
[root@test244 redmine]#
[root@test244 redmine]# docker-compose ps -a
NAME               IMAGE                  COMMAND                                                                                        SERVICE            CREATED          STATUS                       PORTS
redmine-4.0.4      redmine:4.0.4-alpine   "/docker-entrypoint.sh rails server -b 0.0.0.0"                                                redmine            16 seconds ago   Exited (137) 4 seconds ago
redmine-db-4.0.4   mariadb:10.8.2         "docker-entrypoint.sh mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci"   redmine-db-4.0.4   16 seconds ago   Exited (137) 4 seconds ago
[root@test244 redmine]#

コンテナの再起動

docker-compose restart

実行例

[root@test244 redmine]# docker-compose ps
NAME               IMAGE                  COMMAND                                                                                        SERVICE            CREATED              STATUS          PORTS
redmine-4.0.4      redmine:4.0.4-alpine   "/docker-entrypoint.sh rails server -b 0.0.0.0"                                                redmine            About a minute ago   Up 32 seconds   0.0.0.0:8080->3000/tcp, :::8080->3000/tcp
redmine-db-4.0.4   mariadb:10.8.2         "docker-entrypoint.sh mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci"   redmine-db-4.0.4   About a minute ago   Up 32 seconds   3306/tcp
[root@test244 redmine]#
[root@test244 redmine]# docker-compose restart
[+] Restarting 2/2
 ? Container redmine-db-4.0.4  Started                                         1.1s
 ? Container redmine-4.0.4     Started                                         1.1s
[root@test244 redmine]#
[root@test244 redmine]#
[root@test244 redmine]# docker-compose ps
NAME               IMAGE                  COMMAND                                                                                        SERVICE            CREATED              STATUS         PORTS
redmine-4.0.4      redmine:4.0.4-alpine   "/docker-entrypoint.sh rails server -b 0.0.0.0"                                                redmine            About a minute ago   Up 3 seconds   0.0.0.0:8080->3000/tcp, :::8080->3000/tcp
redmine-db-4.0.4   mariadb:10.8.2         "docker-entrypoint.sh mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci"   redmine-db-4.0.4   About a minute ago   Up 3 seconds   3306/tcp
[root@test244 redmine]#

停止中のコンテナを削除

docker-compose rm

コンテナを選択して削除する場合にはコマンドの最後に名前をつけて実行

docker-compose rm <コンテナ名>

実行例

[root@test244 redmine]# docker-compose ps -a
NAME               IMAGE                  COMMAND                                                                                        SERVICE            CREATED         STATUS                      PORTS
redmine-4.0.4      redmine:4.0.4-alpine   "/docker-entrypoint.sh rails server -b 0.0.0.0"                                                redmine            2 minutes ago   Exited (1) 12 seconds ago
redmine-db-4.0.4   mariadb:10.8.2         "docker-entrypoint.sh mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci"   redmine-db-4.0.4   2 minutes ago   Exited (0) 12 seconds ago
[root@test244 redmine]#
[root@test244 redmine]# docker-compose rm
? Going to remove redmine-4.0.4, redmine-db-4.0.4 Yes
[+] Removing 2/0
 ? Container redmine-db-4.0.4  Removed                                         0.0s
 ? Container redmine-4.0.4     Removed                                         0.1s
[root@test244 redmine]#
[root@test244 redmine]# docker-compose ps -a
NAME      IMAGE     COMMAND   SERVICE   CREATED   STATUS    PORTS
[root@test244 redmine]#

コンテナの一覧とステータスを表示

docker-compose、docker コマンドでそれぞれ ps オプションをつけて実行するが、表示内容に差異があるので確認したい内容によって使い分ける。

コンテナ名、サービス名を確認したい場合

docker-compose ps

以下のように表示される。

[root@test244 redmine]# docker-compose ps -a
NAME               IMAGE                  COMMAND                                                                                        SERVICE            CREATED         STATUS         PORTS
redmine-4.0.4      redmine:4.0.4-alpine   "/docker-entrypoint.sh rails server -b 0.0.0.0"                                                redmine            8 minutes ago   Up 8 minutes   0.0.0.0:8080->3000/tcp, :::8080->3000/tcp
redmine-db-4.0.4   mariadb:10.8.2         "docker-entrypoint.sh mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci"   redmine-db-4.0.4   8 minutes ago   Up 8 minutes   3306/tcp
[root@test244 redmine]#

コンテナ ID、コンテナ名を確認したい場合

docker ps -a
[root@test244 redmine]# docker ps -a
CONTAINER ID   IMAGE                  COMMAND                   CREATED          STATUS          PORTS                                       NAMES
be9b709829a6   mariadb:10.8.2         "docker-entrypoint.s…"   10 minutes ago   Up 10 minutes   3306/tcp                                    redmine-db-4.0.4
1e621f8f6f16   redmine:4.0.4-alpine   "/docker-entrypoint.…"   10 minutes ago   Up 10 minutes   0.0.0.0:8080->3000/tcp, :::8080->3000/tcp   redmine-4.0.4
[root@test244 redmine]#

ログをみる

docker-compose logs

foreground で表示し続ける場合は以下。

docker-compose logs -f

表示の終了は Ctrl + c で。

実行例

[root@test244 redmine]# docker-compose logs -f
redmine-db-4.0.4  | 2023-10-10 08:06:14+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.8.2+maria~focal started.
redmine-db-4.0.4  | 2023-10-10 08:06:14+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
redmine-db-4.0.4  | 2023-10-10 08:06:14+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.8.2+maria~focal started.
redmine-db-4.0.4  | 2023-10-10 08:06:14+00:00 [Note] [Entrypoint]: MariaDB upgrade not required
redmine-db-4.0.4  | 2023-10-10  8:06:14 0 [Note] mysqld (server 10.8.2-MariaDB-1:10.8.2+maria~focal) starting as process 1 ...
redmine-db-4.0.4  | 2023-10-10  8:06:14 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
redmine-db-4.0.4  | 2023-10-10  8:06:14 0 [Note] InnoDB: Number of transaction pools: 1
redmine-db-4.0.4  | 2023-10-10  8:06:14 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
redmine-db-4.0.4  | 2023-10-10  8:06:14 0 [Note] mysqld: O_TMPFILE is not supported on /tmp (disabling future attempts)
redmine-db-4.0.4  | 2023-10-10  8:06:14 0 [Note] InnoDB: Using Linux native AIO
redmine-db-4.0.4  | 2023-10-10  8:06:14 0 [Note] InnoDB: Initializing buffer pool, total size = 128.000MiB, chunk size = 2.000MiB
redmine-db-4.0.4  | 2023-10-10  8:06:14 0 [Note] InnoDB: Completed initialization of buffer pool
redmine-db-4.0.4  | 2023-10-10  8:06:14 0 [Note] InnoDB: Buffered log writes (block size=4096 bytes)
redmine-db-4.0.4  | 2023-10-10  8:06:15 0 [Note] InnoDB: 128 rollback segments are active.
redmine-db-4.0.4  | 2023-10-10  8:06:15 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...
redmine-db-4.0.4  | 2023-10-10  8:06:15 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.
redmine-db-4.0.4  | 2023-10-10  8:06:15 0 [Note] InnoDB: log sequence number 1330483; transaction id 3066
redmine-db-4.0.4  | 2023-10-10  8:06:15 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
redmine-db-4.0.4  | 2023-10-10  8:06:15 0 [Note] Plugin 'FEEDBACK' is disabled.
redmine-db-4.0.4  | 2023-10-10  8:06:15 0 [Warning] You need to use --log-bin to make --expire-logs-days or --binlog-expire-logs-seconds work.
redmine-db-4.0.4  | 2023-10-10  8:06:15 0 [Note] Server socket created on IP: '0.0.0.0'.
redmine-db-4.0.4  | 2023-10-10  8:06:15 0 [Note] Server socket created on IP: '::'.
redmine-db-4.0.4  | 2023-10-10  8:06:15 0 [Note] mysqld: ready for connections.
redmine-db-4.0.4  | Version: '10.8.2-MariaDB-1:10.8.2+maria~focal'  socket: '/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution
redmine-db-4.0.4  | 2023-10-10  8:06:15 0 [Note] InnoDB: Buffer pool(s) load completed at 231003  8:06:15
redmine-4.0.4     | The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32`.
redmine-4.0.4     | The Gemfile's dependencies are satisfied
redmine-4.0.4     | => Booting WEBrick
redmine-4.0.4     | => Rails 5.2.3 application starting in production on http://0.0.0.0:3000
redmine-4.0.4     | => Run `rails server -h` for more startup options
redmine-4.0.4     | W, [2023-10-10T08:06:25.683238 #1]  WARN -- : Creating scope :system. Overwriting existing method Enumeration.system.
redmine-4.0.4     | [2023-10-10 08:06:26] INFO  WEBrick 1.4.2
redmine-4.0.4     | [2023-10-10 08:06:26] INFO  ruby 2.6.5 (2019-10-01) [x86_64-linux-musl]
redmine-4.0.4     | [2023-10-10 08:06:26] INFO  WEBrick::HTTPServer#start: pid=1 port=3000
^Ccanceled
[root@test244 redmine]#

サービス内でコマンドを実行

docker-compose exec <サービス名> <コマンド>

実行例

[root@test244 redmine]# docker-compose exec redmine bash
bash-5.0#
bash-5.0# free -h
              total        used        free      shared  buff/cache   available
Mem:          740Mi       428Mi        51Mi       1.0Mi       259Mi       192Mi
Swap:         1.0Gi        85Mi       938Mi
bash-5.0#
bash-5.0# exit
exit
[root@test244 redmine]#

コンテナのプロセス情報を表示

docker-compose top

実行例

[root@test244 redmine]# docker-compose top
redmine-4.0.4
UID        PID    PPID   C    STIME   TTY   TIME       CMD
systemd+   2719   2698   0    04:06   ?     00:00:04   /usr/local/bin/ruby bin/rails server -b 0.0.0.0

redmine-db-4.0.4
UID        PID    PPID   C    STIME   TTY   TIME       CMD
systemd+   2684   2648   0    04:06   ?     00:00:00   mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci

[root@test244 redmine]#

バージョンを表示

docker-compose version

実行例

[root@test244 redmine]# docker-compose version
Docker Compose version v2.22.0
[root@test244 redmine]#