CheatSheet
日本語 icon日本語English iconEnglish
チートシートとはカンニングペーパーのことです。それが転じて、本来覚えることをまとめておいたものです。
要点をすぐに参照できるようにまとめてみました。

Docker

エンジニアのためのWebチートシート

Dockerとはコンテナと呼ばれるOSレベルの仮想化環境を提供するソフトウェアです。近年、コンテナ化したアプリケーションのデプロイ、スケーリング、管理を行うためのコンテナオーケストレーションシステムであるKubernetesの採用事例も増え、ますますコンテナ仮想化技術は注目されています。 Dockerコマンドをチートシートにまとめました。

コンテナのビルド(Dockerイメージの作成)

docker build

  • Dockerfileからイメージを作成します。

    docker build [options] .
      -t "app/container_name"    # name
    

Dockerイメージの実行

docker run

  • Dockerイメージを実行します。

    docker run [options] IMAGE
    

docker run -p 80:80 IMAGE

  • -pオプションにより、ビルドしたコンテナのポートをホスト側に公開することができます。例えば、下記のように-p 80:80として、localhost:80にアクセスするとコンテナの80ポートに対してアクセスすることができます。

    docker run -p 80:80 hello-world
    

Dockerデバッグ

デバッグの流れ

  • 1. Dockerイメージのビルド

    docker build -t sample .
    
  • 2. IMAGE_IDの確認

    docker images
    # REPOSITORY   TAG      IMAGE ID       CREATED              SIZE
    # sample       latest   c5e9f2437917   About a minute ago   2.35GB
    
  • 3. Dockerイメージの実行

    docker run -p 80:80 c5e9f2437917
    
  • 4. CONTAINER_IDを指定して、Dockerコンテナ内に入る

    docker ps
    # CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS         PORTS                NAMES
    # 0d67c54987f8   c5e9f2437917   "bundle exec rails s…"   1 minutes ago   Up 1 minutes   0.0.0.0:80->80/tcp   nifty_haslett
    
    docker exec -it 0d67c54987f8 /bin/bash
    # bash-4.4#
    
  • 5. logを確認する

コンテナ管理

docker create

  • 新しいコンテナを作成します。

    docker create [options] IMAGE
      -a, --attach               # attach stdout/err
      -i, --interactive          # attach stdin (interactive)
      -t, --tty                  # pseudo-tty
          --name NAME            # name your image
      -p, --publish 5000:5000    # port map
          --expose 5432          # expose a port to linked containers
      -P, --publish-all          # publish all ports
          --link container:alias # linking
      -v, --volume `pwd`:/app    # mount (absolute paths needed)
      -e, --env NAME=hello       # env vars
    
    $ docker create --name app_redis_1 \
      --expose 6379 \
      redis:3.0.2
    

docker exec

  • 指定したコンテナの中でプロセスを実行します。

    docker exec [options] CONTAINER COMMAND
      -d, --detach        # run in background
      -i, --interactive   # stdin
      -t, --tty           # interactive
    
    $ docker exec app_web_1 tail logs/development.log
    $ docker exec -t -i app_web_1 rails c
    

docker ps

  • Dockerプロセスの一覧を確認します。

    $ docker ps
    $ docker ps -a
    $ docker kill $ID
    

docker start/stop

  • 作成したDockerイメージを起動・停止することができます。

    docker start [options] CONTAINER
      -a, --attach        # attach stdout/err
      -i, --interactive   # attach stdin
    
    docker stop [options] CONTAINER
    

イメージ

docker images

  • Dockerイメージの一覧を表示します。

    $ docker images
      REPOSITORY   TAG        ID
      ubuntu       12.10      b750fe78269d
      me/myapp     latest     7b2431a8d968
    $ docker images -a   # also show intermediate
    

docker rmi

  • Dockerイメージを削除します。

    docker rmi b750fe78269d
    

Related Goods

  • Dockerでつまづいてしまった人も、この一冊を読み込めば理解できる!
初心者向けに基礎からわかりやすく解説しています。
    Dockerでつまづいてしまった人も、この一冊を読み込めば理解できる! 初心者向けに基礎からわかりやすく解説しています。
    詳細をみる
  • Docker/Kubernetesの基礎から実際にアプリケーションを作るまでを解説した入門書。
実践的な運用ノウハウまでカバー。
    Docker/Kubernetesの基礎から実際にアプリケーションを作るまでを解説した入門書。 実践的な運用ノウハウまでカバー。
    詳細をみる

WebTerm - Recommended tools

WebTermは、ブラウザでLinuxコマンド・Gitコマンドを安全に実行でき、チュートリアル式で学べるターミナルサンドボックスです。
AIコーディングツールの普及に伴い、CLIの基礎知識を身につける重要性は増しています。実際のターミナルを操作するのに抵抗がある方でも、WebTermはローカル環境を壊す心配がありません。「会員登録不要・無料」で利用でき、学習環境として最適です。

WebTerm Logo

WebTerm

Browser Terminal Sandbox for Learning CLI

開く

All Cheatsheets

エンジニア・プログラマー向けの便利なチートシートを多数まとめています(SP/Tablet/PC対応)
すべてのチートシートを見る