> docker container run -it ubuntu:20.04
root@0c16f919003b:/#
// -itオプションを付けると、rootでubuntuのコンテナにアクセスできる。
root@0c16f919003b:/# pwd
/
root@0c16f919003b:/# ls
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var
root@0c16f919003b:/# exit
exit
>
> docker container run ubuntu:20.04
> docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
// Upになっていない。
> docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
4770c66ac65f ubuntu:20.04 "/bin/bash" 46 seconds ago Exited (0) 45 seconds ago
trusting_moser
// bashを実行したが、bashに対して何も行っていないためbashが終了してステータスもExitedとなっている。
// 標準入力が行えない状態ため、コマンドプロンプトからコンテナに対して標準入力を行える状態にする必要がある。
> docker container run -i ubuntu:20.04
ls
/bin/bash: line 1: $'ls\r': command not found
// ubuntuのコンテナに対してbashのコマンドを実行出来ていそう。
// -iは標準入力を受け付けてくれるコマンドだということがわかった。
> docker container run -it ubuntu:20.04
root@c0afb3745b60:/# ls
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var
// ubuntuのコンテナ内でlsコマンドを実行すると、コンテナ内のディレクトリ一覧が表示されている。
// -tのオプションがつくことで、先ほどの-iよりも出力結果が見やすくなった。
> docker image inspect ubuntu:20.04
[
{
・・・
"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"
],
・・・
},
・・・
}
]
// configのCmdにデフォルトのコマンドが書かれている。
// デフォルトは'/bin/bash'が実行される。
> docker container run -it ubuntu:20.04 pwd
/
// ubuntuのコンテナ内でpwdが実行され、カレントディレクトリが表示されている。
> docker container run -it ubuntu:20.04 ls
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var
// ubuntuのコンテナ内でlsが実行され、ルートディレクトリ内のディレクトリ一覧が表示されている。
> docker container run -it ubuntu:20.04 hoge
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "hoge": executable file not found in $PATH: unknown.
// hogeというコマンドはないとエラーが発生している。