コマンドとオプションの意味
コンテナ作成
docker create -it --name apache-server -p 8080:80 alpine
docker create
- 意味:新しいコンテナを「作成」します。ただし、この段階では「起動」はしません
- よく使われる docker run は「作成してすぐ起動」しますが、create は作成だけを行います
-it
これは2つのオプションをまとめたものです:
- -i(--interactive):標準入力を開いたままにします(ターミナルで操作できるように)
- -t(--tty):仮想端末(TTY)を割り当てます。シェルっぽく使うために必要です
--name apache-server
- 作成するコンテナに名前を付けます(ここでは apache-server)
- 名前を付けると、docker start apache-server のように呼び出しやすくなります
-p 8080:80
- ポートフォワーディングの設定です
- ホストの8080番ポート を コンテナの80番ポート に接続します
- つまり、ブラウザで
http://localhost:8080
にアクセスすると、コンテナ内の 80番ポート に届きます
alpine
- 使用するイメージ名です。alpine は非常に軽量なLinuxディストリビューションのDockerイメージです
- ただし、この状態では Apacheは入っていません
- Apacheを動かしたい場合は、alpine イメージに自分でApacheをインストールするか、httpd イメージ(Apache公式)を使う方が簡単です
コンテナを作成して中に入る
docker run -it --name apache-server -p 8080:80 alpine /bin/sh
- --name apache-server:名前を付けます
- -p 8080:80:ポートフォワーディング
- /bin/sh:シェルを起動(AlpineはBashがないので sh)
イメージのビルド
docker build -t my-apache-alpine .
- -t my-apache-alpine:イメージ名を my-apache-alpine に設定
- . は「カレントディレクトリ」を指定
コンテナの起動
docker run -d --name apache-server -p 8080:80 my-apache-alpine
- -d:バックグラウンドで実行
- --name apache-server:名前付け
- -p 8080:80:ポートマッピング
docker run --rm my-python-app
- --rm:実行後にコンテナを削除する(お掃除も自動)