目的
新しいプロジェクト先でdockerで環境構築を進めていくため
忘備録として、dockerで環境構築を進めるにあたって自分がよく利用しているコマンド一覧を並べてみる。
納得行く形で環境構築ができたらチュートリアルを書いていこうと思う。
イメージ / コンテナの確認
#イメージ一覧
docker images
#動作中のコンテナ一覧
docker ps
#未動作含めてのコンテナ一覧
docker ps -a
コンテナの実行
docker run centos
動作内容
①Dockerイメージ(centos)がDockerホスト(ローカルリポジトリ)に存在するか確認し、なければDocker Hub(レジストリ)からダウンロードする(docker pull)
②コンテナを作成する (docker create)
③コンテナを実行する (docker start)
実行中のコンテナにシェルで入る
docker exec -it コンテナ名 /bin/bash
デフォルトはフォアグラウンドなので、明示的にバックグランド実行したいときは -d オプションを追加
docker run -d nginx
--rmコマンドは自動削除 フォアグラウンドで利用したときのみ有効。date や catなどその場限りで確認したいときとかに有効
docker run --rm ubuntu date
コンテナの中でシェルを利用する場合 "-i , -t"オプションで標準出力・疑似端末を有効にする
docker run -it ubuntu /bin/bash
ログを見たい
docker logs dataonly_webserver_1
コンテナにアクセス
docker exec -it dataonly_webserver_1 bash
削除系
docker images全削除
docker images -aq | xargs docker rmi
コンテナ全削除
docker ps -aq | xargs docker rm
すべてのコンテナを終了する
$ docker kill $(docker ps -a)
すべての終了しているコンテナを削除する
$ docker rm $(docker ps -a -q)
動作しているコンテナを含めて、すべてのコンテナを削除する
$ docker rm-f(docker ps -a -q)
webサーバーとDBサーバーの紐づけ
wordpress と dbサーバーがpullされている状態を前提としている。
下記はwordpressにログインするときに必要なパスワードを明示的に指定している。
mysqlのバージョンによってはうまくいかないときあり。(pull mysqlでやると最新版が8系が取得され、権限の影響でうまくいかなかった。 → mysql 5.6で指定したらうまくいった。)
docker run -d --link db:mysql -p 8080:80 -e WORDPRESS_DB_PASSWORD=password --name web wordpress
イメージ名の編集
docker tag ansible/centos7-ansible ken0830/ansible/centos7-ansible