Docker

Dockerの基本コマンド

起動、確認、ログ、コンテナ内のコマンド実行、停止と削除を順番に覚えます。

Docker入門の講座一覧

01

docker runを分解する

次のコマンドは、Nginxコンテナをバックグラウンドで起動し、ホストの8080番ポートからアクセスできるようにします。

Webサーバーを起動COMMAND
docker run -d --name study-web -p 8080:80 nginx:alpine
  • docker run:イメージからコンテナを作って起動する
  • -d:端末を占有せずバックグラウンドで動かす
  • --name study-web:人間が扱いやすい名前を付ける
  • -p 8080:80:ホスト8080番をコンテナ80番へ転送する
  • nginx:alpine:利用するイメージとタグを指定する

同じホストポートを使うコンテナを複数起動すると衝突します。別のポートを使う場合は-p 8081:80のように左側だけ変更します。

02

状態とログを確認する

状態を一覧表示COMMAND
docker ps
docker ps -a
docker logs --tail 20 study-web
出力例OUTPUT
CONTAINER ID   IMAGE         STATUS         PORTS                  NAMES
4f2...         nginx:alpine  Up 12 seconds  0.0.0.0:8080->80/tcp   study-web

docker psは起動中だけ、-a付きは停止済みも含めて表示します。docker logsはコンテナの標準出力と標準エラーを表示します。継続的に見るdocker logs -f study-webは、Ctrl+Cでログ表示だけを止め、コンテナ自体は止めません。

03

docker execでコンテナ内を確認する

起動中のコンテナでコマンドを実行するにはdocker execを使います。シェルが入っているイメージなら、次のようにファイルを確認できます。

Nginxのトップページを読むCOMMAND
docker exec study-web sh -c "head -n 2 /usr/share/nginx/html/index.html"
出力例OUTPUT
<!DOCTYPE html>
<html>

docker exec -it study-web shとすると対話的なシェルを開けます。ただしコンテナ内で直接ファイルを編集する方法は、コンテナを作り直すと失われます。繰り返し使う設定はDockerfileやボリュームへ移します。

04

停止・再起動・削除

ライフサイクル操作COMMAND
docker stop study-web
docker start study-web
docker restart study-web
docker stop study-web
docker rm study-web

停止はコンテナを残したまま実行を止め、開始は同じコンテナを再開します。削除はコンテナ自体を消す操作です。docker rm -fは実行中でも停止して削除するため、便利ですが対象確認を省略しないようにします。

練習

Nginxを起動してブラウザで確認し、docker stop後にページが表示されなくなること、docker start後に再び表示されることを試してください。