ホスト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
\第一線のプログラマーの行動原理を学べる!/
