【図解】docker runのオプションいろいろ #マンガでわかるDocker 番外編

イラスト, マンガ, マンガでわかるDocker

こんにちは!
書籍『わかばちゃんと学ぶ』シリーズや『マンガでわかるDocker』を描いている湊川(みなとがわ)あいです。

YYPHP Advent Calendar 2018 3日目を担当します!

icon_wakaba_normal.jpg (15.0 kB)
Docker、いろんなオプションがしれっと使われていて、初心者の頃はそれぞれどんな効果があるかわからないんだよね……-itとか……

$ docker run -it alpine /bin/bash

icon_wakaba_normal.jpg (15.0 kB)
-dとか-pとか-vとか……

$ docker run -d -p 80:80 –name myapp -v $(pwd):/var/www/html php:7.0-apache

icon_wakaba_normal.jpg (15.0 kB)
–rmとか……

$ docker run –rm -v $(pwd)/src:/work vvakame/review /bin/sh -c “cd /work && review-pdfmaker config.yml”

めちゃくちゃに長いDockerコマンド、最初は意味がわからないですよね。私もそうでした。
でも、ひとつひとつ分解して理解すると、意味がわかるようになります。

たとえばコンテナを立ち上げるとき、何もオプションを指定しなければこんな感じでシンプルですが

$ docker run php:7.0-apache

icon_wakaba_smile.jpg (15.3 kB)
うん、これならわかるよ。phpのイメージをもとにコンテナを起動するってことだよね

「デフォルトの設定じゃなくて、今回はこういう風なコンテナを作ってくれ〜」という場合、次のようにオプションをいくつか書き連ねます。

$ docker run [オプション①] [オプション②] [オプション③] php:7.0-apache

icon_wakaba_smile.jpg (15.3 kB)
オプションが増えるとコマンドが長くなり、難しそうに見えるだけなんだね!

この記事では、よく使うオプションをそれぞれ図解で表してみます。

icon_wakaba_smile.jpg (15.3 kB)
『図解でわかるdocker runのオプション』、いってみよー!

docker run -t

  • コンテナの標準出力をホストの標準出力につなげる
  • tty(端末デバイス)を割り当てる
    • -tはttyの略。ttyについてはこちらがわかりやすいです。

docker run -i

  • 先ほどの-tとは反対に、ホストの入力をコンテナの標準出力につなげる
    • (接続されていなくてもSTDINを開いたままにしている)
  • キーボードから入力した文字がコンテナに送られる
  • -iはinteractiveの略

docker run -it

  • -i-tを組み合わせたもの
  • ホスト(手元のターミナル)とコンテナの標準入出力をつなげる
  • コンテナ内部で作業したいときに使う

docker run -d [イメージ名]

  • コンテナ内に入らず、バックグラウンドでコンテナを動作させる
    • これをデタッチモードという
      • デタッチモードの反対語はフォアグラウンドモード。-dオプションが使用されていない場合は、フォアグラウンドモードとしてコンテナが起動します。

docker run -p [ホスト側のポート番号]:[コンテナのポート番号]

  • ポートフォワードする
    • たとえば-p 80:80はホスト側の80番ポートをコンテナ側の80番ポートに転送するように指定している
  • ポートフォワードすると何がいいの?

docker run -v [ホスト側のディレクトリパス]:[コンテナ内のディレクトリパス]

docker run –rm

  • コンテナ内でのコマンドの実行が終わったらコンテナを自動で削除する
  • --rmはremove(取り除く)の略。

icon_wakaba_smile.jpg (15.3 kB)
イメージで覚えればわかりやすいね!

実践編はマンガで解説しています

🌱マンガでわかるDocker①

200px_docker1

🌱マンガでわかるDocker②

400px_docker2

わかばちゃんが登場する書籍

マンガでわかりやすく学べる「わかばちゃんと学ぶ」シリーズです。

わかばちゃんが登場するWeb連載

マンガでわかるUnity

わかばちゃん、お次はゲーム制作に挑戦! もんりぃ先生 @monry とのコラボで連載中です。
こちらからお読みいただけます。
マンガでわかるUnity

マンガでわかるLINE Clova開発

TECH PLAY Magazine様にてWeb連載始まりました。
わかばちゃん、スマートスピーカー開発に挑戦! ちょまどさん @chomado とのコラボで連載中です。
こちらからお読みいただけます。
マンガでわかるLINE Clova開発 1話「どんな仕組みで動くの? サーバーレスって何?」

YYPHPアドベントカレンダー2018、明日12/4の担当は @stmtk_01 さんです!
よろしくお願いします。

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

関連記事一覧