Docker
CentOS7で実施
■Dockerインストール
wget -qO- https://get.docker.com/ | sh
rpm -q docker-ce
■dockerサービスの起動
systemctl start docker
■dockerサービスの有効化
systemctl enable docker
■user01をdockerグループに所属させ、docker管理コマンドを実行できるようにする
usermod -G docker user01
■user01でログイン
■DockerHubにあるイメージのサーチ
docker search centos
DockerレジストリからDockerイメージをダウンロードする
docker pull {イメージ名} : {タグ名}
例)
docker pull centos:latest
docker pull centos:centos6
docker pull ubuntu
ダウンロードしたDockerイメージの一覧を確認する
docker images
■ローカルのイメージコンテナ一覧表示
docker image ls
■DockerHubにあるイメージをDockerホストにダウンロード
docker image pull centos:7
■確認
docker image ls
■DockerHubにあるイメージubuntuのlatestタグの付いたイメージをダウンロード
docker image pull ubuntu:latest
■Dockerコンテナを作成・実行
書式
docker run [オプション][--name {コンテナ名}] {イメージ名}[:{タグ名}][コンテナで実行するコマンド][引数]
主なオプション
-d : バックグラウンドで実行する(後述)。既定では、コンテナーをフォアグラウンドで実行するため、
Webサーバーやアプリケーションサーバーなど常時実行するコンテナーで指定。
-i : コンテナーの標準入力を開く。/bin/bashなどでコンテナーを操作する際に指定する。
-t : tty(端末デバイス)を確保する。/bin/bashなどでコンテナーを操作する際に指定。
-p : {ホストのポート番号}:{コンテナーのポート番号}:Dockerサーバーのホストと
ポートマッピングを構成
例)
docker run -i -t centos
exit
docker run -i -t ubuntu
apt-get update
OSのバージョン確認
cat /etc/lsb-release
確認
docker ps
①Dockerコンテナ操作
ダウンロードしたDockerホストにあるcentosイメージからDockerコンテナを作成
docker container run centos:7 echo "hoge hoge"
■Dockerコンテナの一覧を取得する
docker ps [-a]
-a : 停止中のコンテナも表示されます。
②Dockerコンテナ操作 動作中のコンテナがないことを確認
docker container ls
③作成したコンテナが自動停止されていることを確認
docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e72f15246a5e centos:7 "echo 'hoge hoge'" 19 seconds ago Exited (0) 18 seconds ago adoring_driscoll
■Dockerコンテナの起動
docker start { コンテナ名 | コンテナID }
④docker container runコマンドを実施し、ダウンロードしたDockerホストにあるcentosイメージを使用してDockerコンテナを作成
-itオプションとbashコマンドを実施して、コンテナの作成と同時にシェルを起動し、コンテナ内のシェルを使い、コマンド実行できるようにする
docker container run -it centos:7 bash
[root@97f5cba069e6 /]#
ps -elf
exit
docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
97f5cba069e6 centos:7 "bash" About a minute ago Exited (127) 12 seconds ago lucid_fermat
e72f15246a5e centos:7 "echo 'hoge hoge'" 11 minutes ago Exited (0) 11 minutes ago adoring_driscoll
■デタッチモードでDockerコンテナの起動
docker container run -d centos:7 ping -c 50 127.0.0.1
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2b1803680bff centos:7 "ping -c 50 127.0.0.1" 20 seconds ago Up 19 seconds peaceful_dubinsky
■実行結果を確認 引数のCONTAINER IDは一部でよい
docker logs 2b1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.033 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.040 ms
■Dockerコンテナへの接続
docker attach {コンテナ名 | コンテナID }
■Dockerコンテナの端末からデタッチとアタッチ
①bashを起動したdockerコンテナに接続し、コンテナの端末に接続
docker container run -it centos:7 bash
②Dockerコンテナの端末からデタッチ
ctrl+p ctrl+q (ctrlキーは押したまま)
③デタッチしたDockerコンテナの端末にアタッチ
docker container attach 24e
[root@24e504ac64fc /]#
④exitでコンテナのシェルを終了。コンテナは自動停止される
[root@24e504ac64fc /]# exit
exit
[user01@localhost ~]$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES