3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker コマンドメモ

Last updated at Posted at 2020-01-04

dockerイメージダウンロード&実行

docker run <dockerイメージ名>

docker run <dockerイメージ名> <コンテナ起動後にコンテナ内で実行するコマンド>

docker run --network <接続したいネットワーク名> <dockerイメージ名>

例)nginxコンテナの実行コマンド

ポート指定、起動後の実行コマンド指定、停止時に削除指定

docker run --name <コンテナ名> -p <ホスト側のポート番号>:<コンテナ側のポート番号> -it -d --rm nginx /bin/bash

オプション
--name:起動するコンテナの名前
-p:コンテナのポートをホストのポートとマッピングし、外部に公開するための指定
-d:デタッチモード指定(バックグラウンド実行)
-t:Dockerコンテナ内の標準出力とホスト側の出力をつなげる(これつけないとコンテナ操作が不便になる)
-i:ホスト側の入力をコンテナの標準出力をつなげる(これつけないとコンテナ操作ができない)

コンテナ終了&削除

docker stop <コンテナ名>
docker rm <コンテナ名>

ローカル上にダウンロード済のdockerイメージ一覧

docker images

ローカル上にダウンロード済のdockerイメージにタグ付けする

docker tag <元のイメージ名> <新しいイメージ名>

dockerイメージの詳細情報の表示

docker inspect <dockerイメージ名>

dockerイメージの削除

docker rmi <dockerイメージ名>
docker rmi -r <dockerイメージ名>  ## -fを付けると強制削除

--タグ削除の場合もほぼ同様 (参考:http://www.memotansu.jp/docker/703/)
docker rmi <dockerイメージ名>:<タグ名>

dockerイメージの取得

docker pull <dockerイメージ名>

dockerイメージの構築

  1. Dockerfileの作成
  2. Dockerfileからイメージをビルド

dockerコンテナファイルのコピー

# ローカルホストからコンテナへ
docker cp <ローカルホスト上のコピーしたいファイル> <コンテナ名>:<コピー先パス>

# コンテナからローカルホストへ
docker cp <コンテナ名>:<コンテナ上のコピーしたいファイル> <ローカルホスト上のコピー先パス>

起動中のコンテナ一覧

docker ps
docker container list

停止中のコンテナ一覧

docker ps -a
docker container list -a

コンテナへの接続

docker attach <コンテナ名>  # exitで抜けるとコンテナが終了してしまう。Ctrl + P + Q で抜けることができる。
docker exec -it <コンテナ名> /bin/bash  # exitで抜けてもコンテナは起動し続ける

コンテナからイメージ作成

docker commit <コンテナ名> <イメージ名>:<タグ名>

docker for mac の仮想環境

docker for mac での仮想環境は VirtualBox ではなく、HyperKitというMacネイティブの仮想化環境が裏で動いている。

コンテナのネットワーク関連コマンド

# 一覧表示
docker network ls
# 詳細表示
docker network inspect bridge  #bridgeドライバのネットワーク詳細情報の確認
# ネットワーク作成
docker network create <ネットワーク名>
# コンテナを作成したネットワークへ接続
docker network connect <ネットワーク名> <コンテナ名>
# コンテナを作成したネットワークから切断
docker network disconnect <ネットワーク名> <コンテナ名>
# 作成したネットワークを削除
docker network rm <ネットワーク名>

docker-machin関連コマンド

# 一覧表示
docker-machine ls
# 仮想マシン作成(gcpの場合)
gcpコンソール上でサービスアカウント作成し、プロジェクトオーナ権限付与
キーをダウンロード
export GOOGLE_APPLICATION_CREDENTIALS=<jsonファイルパス>
docker-machine create --driver google --google-project <プロジェクトID> --google-zone asia-northeast1-a <仮想マシン名>
# 仮想マシンへssh
docker-machine ssh <仮想マシン名>
# 仮想マシンを停止
docker-machine stop <仮想マシン名>
# 仮想マシンを削除
docker-machine rm <仮想マシン名>
# dockerコマンドの実行時に、特定のマシンを指し示せるような環境変数を表示
docker-machine env <仮想マシン名>
# 上記で表示された環境変数を適用
eval $(docker-machine env <仮想マシン名>)
# IPアドレスを確認
docker-machine ip <仮想マシン名>

コンテナのボリューム関連コマンド

# volume作成
docker volume create <volume名>
# 一覧表示
docker volume ls
# 詳細表示
docker volume inspect <volume名>
# 作成したvolumeを削除
docker volume rm <volume名>
# volume指定しdocker起動
docker run -itd --name <コンテナ名> --mount source=<volume名>,destination=<コンテナのマウント先>,readonly nginx
docker run -itd --name <コンテナ名> -v <volume名>:<コンテナのマウント先>:ro nginx
# bindmount(仮想マシンのファイルをコンテナでマウント)
sudo docker run -itd --name vol-test06 --mount type=bind,source="$(pwd)"/hogehoge,target=/app/hogehoge nginx

docker-compose関連コマンド

# コンテナの一覧表示
docker-compose ps
# コンテナを作成して、起動
docker-compose up -d  # -dはバックグラウンド実行の指定
docker-compose -f <docker-composeのyamlファイル> up -d  #yamlで指定したコンテナの起動
# 引数で指定したサービスのコンテナ内でコマンドを実行
docker-compose run <サービス> <サービスで実行するコマンド>
docker-compose run -d <サービス> <サービスで実行するコマンド> # バックグラウンド実行の場合
# コンテナの停止
docker-compose stop
# コンテナの削除
docker-compose down
docker-compose -f <docker-composeのyamlファイル> down  #yamlで指定したコンテナの削除
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?