ホストOSからコンテナ内でコマンドを実行する
docker container execコマンド
ホストOSからコンテナ内でコマンドを実行するにはdocker container exec
コマンドを使う。
$ docker container exec <コンテナ> <コマンド>
<コンテナ>
の部分はコンテナ名かUIDを指定する。
コンテナ名の調べ方
コンテナ名はdocker ps
コマンドなどで調べる。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d07988d90148 rockylinux/rockylinux:8 "/bin/bash" 2 hours ago Up 2 hours docker-rocky-rocky-1
上記の例ではdocker-rocky-rocky-1
がコンテナ名、d07988d90148
がUIDとなる。
実行例
以下の例ではdocker-rocky-rocky-1
コンテナのls
コマンドを実行している。
$ docker container exec docker-rocky-rocky-1 ls
bin
boot
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
docker-composeの場合
docker-compose execコマンド
docker-composeの場合はdocker-compose exec
コマンドを使う。
$ docker-compose exec <サービス> <コマンド>
<サービス>
の部分はdocker-compose.yml
のservices
に記述したサービス名を指定する。
例えば以下のようなdocker-compose.yml
の場合はrocky
サービスを指定する。
services:
rocky:
image: rockylinux/rockylinux:8
(省略)
実行例
以下の例ではdocker-compose.yml
のservices
に記述したrocky
サービスのls
コマンドを実行している。
$ docker-compose exec rocky ls
bin
boot
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
\第一線のプログラマーの行動原理を学べる!/