コンテナ環境へのアクセスの基本コマンドをまとめました。
大きく
・イメージからコンテナを新規作成する場合の起動コマンド
・作成して稼働しているコンテナに対してのコマンド
と分けて紹介します。
イメージからコンテナを新規作成してしてLinuxにログインする
Linux(Ubuntu)のコンテナイメージを取得&実行してきます。
今回はタグバージョン(20.04)も指定します。
>Docker container run -it ubuntu:20.04
※ -itというオプションは-i(コンテナに対しての標準入力をOPENにする), -t(コマンドの結果の見た目を綺麗にする) をつなげた形です。
Unable to find image 'ubuntu:20.04' locally
20.04: Pulling from library/ubuntu
Digest: sha256:8e5c4f0285ecbb4ead070431d29b576a530d3166df73ec44affc1cd27555141b
Status: Downloaded newer image for ubuntu:20.04
root@8b082daf9906:/#
Dockerイメージがローカルに存在しない場合はDockerHubからダウンロードされコンテナ実行されます。
実行された後Bashへrootユーザでログインが行われます。(このからはLinuxにログインした世界となります。)
コンテナイメージからコンテナを作成する際のデフォルトコマンドを変更する
まずコンテナイメージに設定されているデフォルトコマンドは以下で確認できます。
>>docker image inspect ubuntu:20.04
実行結果にコンテナイメージの情報が出力されるのでCmdという部分がデフォルトのコマンド(/bin/bash)になります。
"Created": "2024-10-11T03:38:27.357079367Z",
"DockerVersion": "27.3.1",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/bash"
],
"Image": "",
"Volumes": null,
上記のメージに対してDockerを作成(Docker Run)をする時にオプションコマンドを追記することでDockerのデフォルトコマンドを変更できます。
ls -l を指定した場合は以下の結果が表示されます。
>docker container run -it ubuntu:20.04 ls -l
total 48
lrwxrwxrwx 1 root root 7 Oct 11 02:03 bin -> usr/bin
drwxr-xr-x 2 root root 4096 Apr 15 2020 boot
drwxr-xr-x 5 root root 360 Jan 19 05:02 dev
drwxr-xr-x 1 root root 4096 Jan 19 05:02 etc
drwxr-xr-x 2 root root 4096 Apr 15 2020 home
lrwxrwxrwx 1 root root 7 Oct 11 02:03 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Oct 11 02:03 lib32 -> usr/lib32
lrwxrwxrwx 1 root root 9 Oct 11 02:03 lib64 -> usr/lib64
Imageから作成されたコンテナのデフォルトコマンドが上書きされています。このコンテナを起動するたびにls -lが実行されます。
>docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
37ed101068a3 ubuntu:20.04 "ls -l" 3 minutes ago Exited (0) 8 seconds ago focused_black
13834cb530c0 ubuntu:20.04 "ls" 3 minutes ago Exited (0) 3 minutes ago practical_shockley
48d43ae5ac7b ubuntu:20.04 "pwd" 3 minutes ago Exited (0) 3 minutes ago optimistic_austin
f35241136877 ubuntu:20.04 "/bin/bash" 28 minutes ago Exited (127) 15 minutes ago hardcore_solomon
起動済のコンテナに対してコマンドを実行する
落としていた状態のコンテナを起動してUPの状態にします。
>docker container start hardcore_solomon
アップの状態から以下のコマンドを入力するコマンドが実行できます。この場合既にアップしているコンテナにls -lを実行してます。
exec コンテナ名(or コンテナID) 実行したいコマンド
>docker container exec hardcore_solomon ls -l
bashで再度アクセスしたい場合は以下になります。
>docker container exec -it hardcore_solomon bash
まとめ
イメージからコンテナを新規作成してコマンドを実行する
docker container run -it {イメージ名} {実行したいコマンド}
既存のコンテナでコマンドを実行する
docker container exe -it{コンテナ名}{実行したいコマンド}
となります。以上