のいじーメモ

勉強したことを忘れないうちにメモしていくためのブログ

Docker よく使うコマンド集

Dockerイメージリストの確認

$ docker images

Dockerイメージからコンテナ作成、起動

$ docker run -i -t [REPOSITRY名:TAG名] /bin/bash

Dockerコンテナからイメージを作成する

$ docker commit [コンテナid] [REPOSITRY名:TAG名]

Dockerコンテナの確認(停止中コンテナも表示する場合は -a オプションをつける)

$ docker ps -a

停止中のDockerコンテナを稼働させる

$ docker start [コンテナid]

稼働中のDockerコンテナを停止させる

$ docker stop [コンテナid]

 

Dockerコンテナ削除

$ docker rm [コンテナid]

Dockerイメージ削除

$ docker rmi [イメージid]

・便利なdockerコマンド

稼働しているdockerコンテナすべて停止

$docker stop `docker ps -q`

dockerコンテナすべて削除
$docker rm `docker ps -a -q`

コンテナからexitするときにコンテナ削除(使い捨て)
$docker run -ti --rm [イメージID]


centosでsystemctl start [サービス名]とするとエラーがでる場合
$ docker run --privileged -d --name http centos /sbin/init

コンテナ内で作業する

$ docker exec -it http bash

サービスを立ち上げてコンテナ起動

centos7の場合
$ docker run --privileged -d -p 80:80 --name httpd centos:centos7 /sbin/init


centos6の場合
$ docker run -p 8080:80 -d cent6_apache /usr/sbin/apachectl -DFOREGROUND


docker イメージの保管場所

まずdockerのimage ID の確認
$ cat /var/lib/docker/repositories-devicemapper

表示されたJSONJSON Lintなどにかけて読みやすくするなどして探したいイメージファイルのIDを探す

$ ls /var/lib/docker/graph/[image ID]

 

作成したコンテナを別PCで動作させる方法

Dockerコンテナをファイル出力する


$ docker export [コンテナid] > [出力ファイル名]
出力したコンテナファイルを開発メンバーに渡して、メンバーは出力ファイルをインポートコマンドで叩けば、構築済みのDockerイメージを得ることができる為、docker runすることで同一環境を得ることが可能

cat [インポートファイル] | docker import - [REPOSITRY名:TAG]

docker-compose

バックグラウンドで立ち上げる

$ docker-compose up -d

Docker exec的なやつ
docker exec -it $(docker-compose ps -q httpd) bash

Docker-composeのimageをdownついでに削除
docker-compose down --rmi all