★Docker 自分用チートシート



f:id:noel-blog:20200617145847p:plain
Dockerの概念図



knowledge.sakura.ad.jp

qiita.com




(1) docker runコマンドは3つのコマンドの合体

  1. docker pull: イメージの取得
  2. docker create: コンテナの作成
  3. docker start: コンテナの起動




(2) docker images

  • ダウンロード済みのDockerイメージを一覧表示する
[REPOSITORY] 
今までにダウンロードされイメージのリポジトリ名

[TAG]

[IMAGE ID]
イメージを一意に識別するためのID

[CREATED]
(多くの場合、他人によって)イメージが作成された日

[SIZE]




(3) docker ps -a

  • 停止したコンテナも含めて一覧表示する
[CONTAINER ID] 
コンテナを一意に識別するためのID

[IMAGE]
コンテナを立ち上げる際に材料にしたイメージ名


[COMMAND]

[CREATED]
(自分によって) コンテナが作成された日

[STATUS]
コンテナの状態

[PORTS]
(ホストIP[mac]):(ホスト・ポート番号[mac]) -> (コンテナ・ポート番号[linux])


(docker-composeで機能しているポートフォワーディングの例)
0.0.0.0:443->443/tcp, 0.0.0.0:56789->80/tcp   laradock_nginx_1
9000/tcp                                      laradock_php-fpm_1
0.0.0.0:2222->22/tcp                          laradock_workspace_1
2375-2376/tcp                                 laradock_docker-in-docker_1

(( 注意 ))
laradock_php-fpm_1コンテナのように、
「(矢印無しで) 9000/tcp」となっている場合、
9000番ポートを外部に接続(バインド?)していない。


[NAME]




(4) コンテナのステータス

[Up] コンテナが実行中の状態
[Running] コンテナが実行中の状態
[Exited] コンテナが停止した状態
[Created] コンテナが作成され、実行される前の状態



[Restarting]
[Removing]




(5) (起動している)コンテナへのシェル接続

  • docker exec -it [コンテナID or コンテナ名]
docker exec -it [CONTAINER ID] /bin/sh
docker exec -it [NAME] /bin/sh




(6) Docker Machine




(7) Docker Compose

# コンテナ群を起動
$ docker-compose up -d (コンテナ名: 1) (コンテナ名: 2)
(=> vagrant up)

# コンテナ群を停止
$ docker-compose stop
(=> vagrant halt)

初期設定

* データの保存先(APP_CODE_PATH_HOST, DATA_PATH_HOST)変更
* プロジェクト名称(COMPOSE_PROJECT_NAME)を変更




(8) Docker Engine




qiita.com




(9) mysqlコンテナを立ち上げる




少々変更が必要

>>> プロジェクトの方の.envにて

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret

これは、Laradockの.envに合わせている

#### 合わせる対象 (Laradockの.env)

### MYSQL #################################################

MYSQL_VERSION=5.7
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

変更点

#DB_HOST=127.0.0.1
DB_HOST=mysql

#DB_DATABASE=laravel
DB_DATABASE=default

#DB_USERNAME=root
DB_USERNAME=default

#DB_PASSWORD=
DB_PASSWORD=secret
$ docker-compose up -d --build mysql




laradockの.envを変更したら再ビルド

$ docker-compose up -d --build workspace nginx postgres php-fpm