はじめに
Dockerコマンドの操作方法を復習していきます。
Docker環境がまだ無い方は以下の記事を参照してみてください。
参考:今話題のDocker + Rails + Circle CI + Terraform構成を試したいんじゃ!
コマンド
確認系
docker ps
コンテナの状態確認
-a をつけることで停止中のコンテナも表示できる
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e8f5056d7bf4 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago ecstatic_snyder
docker images
ローカルにあるイメージファイルの一覧
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest fce289e99eb9 11 months ago 1.84kB
docker info
Dockerの状態を確認
ダッシュボード的存在
[root@localhost docker]# docker info
Client:
Debug Mode: false
Server:
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 2
Server Version: 19.03.5
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
<略>
操作系
docker start/stop
コンテナの起動/停止
###コンテナの起動
# docker start <コンテナ名>
###コンテナの停止
# docker stop <コンテナ名>
docker pull
Dockerイメージのダウンロード
(例)CentOS7のイメージダウンロード
# docker pull centos:7
docker run
コンテナ起動
# docker run -it -d -p <ホスト側ポート>:<コンテナ側ポート> -v <ホスト側ディレクトリ>:<コンテナ側ディレクトリ> --name <コンテナ名> <Dockerイメージ名>
run オプション
オプション | 説明 | 例 |
---|---|---|
--name | コンテナ名を指定 | docker run --name "test" centos |
-d | バッググラウンド実行 | docker run -d centos |
-it | コンソールに結果を出力 | docker run -it --name "test" centos /bin/cal |
-p host:cont | ポートフォワーディング | docker run -d -p 8080:80 httpd |
--add-host | ホスト名とIPを指定 | docker run -it --add-host=test.com:192.168.1.1 centos |
--dns | DNSサーバを指定 | docker run --dns=192.168.1.1 httpd |
--mac-address | MACアドレスを指定 | docker run -it --mac-address="92:d0..." centos |
--cpu-shares | CPU配分 (全体で1024) | docker run --cpu-shares=512 centos |
--memory | メモリの上限 | docker run --memory=512m centos |
-v | ディレクトリの共有 | docker run -v /c/Users/src:/var/www/html httpd |
-e | 環境変数を設定 | docker run -it -e foo=bar centos /bin/bash |
--env-file | 環境変数リストから設定 | docker run -it --env-file=env_list centos /bin/bash |
-w | 作業ディレクトリを指定 | docker run -it -w=/tmp/work centos /bin/bash |
docker cp
コンテナ-ホスト間のファイルコピー
###コンテナ→ホストへのファイルコピー
# docker cp <コンテナ名>:<コンテナ内のコピー元ファイル> <ホスト側のコピー先ディレクトリ>
###ホスト→コンテナへのファイルコピー
# docker cp <ホスト側のファイル> <コンテナ名>:<コンテナ内のコピー先ディレクトリ>
docker exec
コンテナへのログイン
(例)『tomcat』コンテナへログイン
[root@localhost docker]# docker exec -it tomcat bash
[root@e01ba3d18e31 /]#
docker commit
コンテナからdockerイメージの作成
# docker commit <コンテナ名> <作成するDockerイメージ名>
docker rm(i)
コンテナ(dockerイメージ)の削除
###コンテナの削除
# docker rm (-f) <コンテナ名>
###dockerイメージの削除
# docker rmi (-f) <dockeriイメージファイル名>
今日はここまで
新しく覚えたコマンドは追記していきます。