64 lines
1.8 KiB
Markdown
64 lines
1.8 KiB
Markdown
# docker container run
|
|
|
|
`docker container run`は、イメージをもとにコンテナを起動するためのコマンド
|
|
|
|
## 基本構文
|
|
|
|
```
|
|
docker container run [OPTION]... IMAGE [COMMAND [ARG]...]
|
|
```
|
|
|
|
## 使用例
|
|
|
|
### コンテナに名前を付ける
|
|
|
|
### コンテナ終了時に、コンテナを自動削除する
|
|
|
|
### バックグラウンドで実行
|
|
|
|
### 標準入力を接続
|
|
```
|
|
ubuntu@localhost:~$ echo hello | docker container run --rm ubuntu cat
|
|
ubuntu@localhost:~$ echo hello | docker container run --rm --interactive ubuntu cat
|
|
hello
|
|
ubuntu@localhost:~$
|
|
```
|
|
- `-i`を指定することで、ホストの標準入力をコンテナのPID1のプロセスの標準入力に接続する
|
|
- `-i`のロングオプションは`--interactive`
|
|
- コンテナのstdout/stderrはデフォルトでdockerクライアントのstdout/stderrに接続する
|
|
|
|
### コンテナ内のプロセスに疑似端末を割り当てる
|
|
|
|
実行例1:
|
|
```
|
|
tsubanyan@localhost:~$ docker container run --rm --tty ubuntu tty
|
|
/dev/pts/0
|
|
tsubanyan@localhost:~$ docker container run --rm ubuntu tty
|
|
not a tty
|
|
tsubanyan@localhost:~$
|
|
```
|
|
|
|
実行例2:
|
|
```
|
|
tsubanyan@localhost:~$ echo "hello" | docker container run --rm -i ubuntu cat
|
|
hello
|
|
tsubanyan@localhost:~$ echo "hello" | docker container run --rm --tty ubuntu cat
|
|
^C
|
|
^C
|
|
^C
|
|
got 3 SIGTERM/SIGINTs, forcefully exiting
|
|
tsubanyan@localhost:~$
|
|
```
|
|
- `-t`で疑似端末を割り当てても、`-i`なしだとホスト側からの入力はできない
|
|
|
|
実行例3:
|
|
```
|
|
tsubanyan@localhost:~$ docker container run --rm -it ubuntu bash
|
|
root@93ef64b84948:/# exit
|
|
exit
|
|
tsubanyan@localhost:~$
|
|
```
|
|
- 対話的に操作できるセッションを作りたい場合は、`-i`と`-t`の療法を指定する
|
|
- 慣習的に、`-it`という指定の仕方がよくされる
|
|
|
|
### コンテナのポートをホストに公開する |