この記事について
dockerコマンドをよく忘れるのでメモしておきます
mysqlを例にしています。
ただの備忘録です
docker pull Dockerイメージの取得
docker pull mysql
docker images -a Docker イメージの一覧を表示
docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 3a5e53f63281 11 days ago 465MB
mysql <none> d5127813070b 2 years ago 407MB
docker run コンテナの作成
docker run --name mysql-for-test -e MYSQL_ROOT_PASSWORD=password -d -p 13307:3306 mysql:latest
-dはコンテナをバックグラウンド実行するオプション
docker run
docker start [name] コンテナの起動
docker start mysql-for-test
mysql-for-test
docker ps -a 現在実行中のコンテナの確認
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a0371102cea6 mysql:latest "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 33060/tcp, 0.0.0.0:13307->3306/tcp mysql-for-test
docker stop [name] コンテナの停止
docker stop mysql-for-test
mysql-for-test
docker rmi イメージ削除
docker rmi mysql:latest
Untagged: mysql:latest
Untagged: mysql@sha256:f1df505c4c6e8eae599a0482e3bde3e761cd700c00cbc371a8161648a26817c0
Deleted: sha256:3a5e53f6328162f8d8bc70131658a721e8e7dcf7495f2fae7cfe4febdbcfefbb
Deleted: sha256:f2533710d884b7eb9329d63844e1504c2d166cdb9139be622f9a5ed5dbd8044c
Deleted: sha256:573b1ee1cfefd4e3c18ade60576f03e275e28b73d985ce551ae78b1a93a81ace
Deleted: sha256:a7de8634d9c2f1188b74aceb18c048e37ea86eace1c4614996e76abc065e71fb
Deleted: sha256:96b788fd084094ed5b2b00b29865ec25bdba4aba633b8a86bb7e485df21e9dfb
Deleted: sha256:c1f124fbef5b35b53dadbd9caa1a272bde42490963ec68daa0a0e52a516cf5f9
Deleted: sha256:5f7c68324b959d2c806db18d02f153bc810f9842722415e077351bc834cc8578
Deleted: sha256:338fc0cd3fb4b87a2b83d274e8fbf475fbde19947c4ac5c5eb6e981a6fb0e8f0
Deleted: sha256:f7a4ccab931f1d1e861961eb951a7806d91ccb375e737fe1f84282f6bbafd2be
Deleted: sha256:f388e1092f8fb931a3cd07a7381bd9707d19526ff81f8b624e932f4919c27a3e
Deleted: sha256:e209b7a884b4d2e9d56bbac40ced48f2caa6a19e7ad6eb6dd20ff754f3af2c5d
Deleted: sha256:2401cf11c5455d505ef49657afcc709197ffcdfc9bd732508e9b62578a30b3a5
Deleted: sha256:814c70fdae62bc26c603bfae861f00fb1c77fc0b1ee8d565717846f4df24ae5d
コンテナ起動時はコンテナに使用しているイメージは削除できない
MySQL Workbenchで接続する設定
上記の例だと
IP 127.0.0.1
Port 13307
username root
Password password
で繋がるはず
docker volume ls Dockerボリュームを表示する
docker volume ls
DRIVER VOLUME NAME
local 4af0b51aff028e66d409e273378cbae94384a5a19ad4d2b2e22020a050c2f1ab
docker volumeとはデータを永続化する場所とのこと
Mysqlのコンテナを作成するとVolumeも作成されています。
イメージやコンテナを削除してもVolumeは削除されない
Docker、ボリューム(Volume)について真面目に調べた
docker inspect [ボリューム名] Dockerボリュームの詳細を表示する
docker inspect 4af0b51aff028e66d409e273378cbae94384a5a19ad4d2b2e22020a050c2f1ab
[
{
"CreatedAt": "2020-01-26T11:30:51Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/4af0b51aff028e66d409e273378cbae94384a5a19ad4d2b2e22020a050c2f1ab/_data",
"Name": "4af0b51aff028e66d409e273378cbae94384a5a19ad4d2b2e22020a050c2f1ab",
"Options": null,
"Scope": "local"
}
]
docker volume rm [ボリューム名] Dockerボリュームを削除する
docker volume rm e50120cd5bd6f95e469e056390285e62d4607cb171578ab965c404bd9cc6ac35
e50120cd5bd6f95e469e056390285e62d4607cb171578ab965c404bd9cc6ac35
使用中のボリュームを削除しようとした場合は以下のようにエラーが出て削除できません
docker volume rm e78cc14f113a5604b8ce19be097b9a293bf10e35ea17d0643ebfe8f1b875e416
Error response from daemon: remove e78cc14f113a5604b8ce19be097b9a293bf10e35ea17d0643ebfe8f1b875e416: volume is in use - [d78ae59aa2db6328999a0a02b552a72f5f8bf7ef047673778323fe1b4d276c7a]
docker volume prune 停止しているコンテナのDockerボリュームを一括削除する
docker volume prune
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Volumes:
9f2e7aece432721df0c486f424deaac4fd2ec599164f5dc942c68cb81cbed8b1
4af0b51aff028e66d409e273378cbae94384a5a19ad4d2b2e22020a050c2f1ab
d8158a2830563c99eb8907feacbe85da49f7186e9d4464d6e4ccc0666cd66b44
44e1f3a93792855219d361a11381fc5ce21eb7bac7f6940ef2617ebcb916c74e
d296e6bf49ecb4da2a84589ce1d7439621eedd1242fc979cfcff6636e175f568
e4a3ffc963c51b5d86e787344ee483215c354a8f72bbe6640a51d9c9760b8e5c
Total reclaimed space: 891.7MB
docker volume create [ボリューム名] Dockerボリュームを新規作成する
docker volume create mysql-test-volume
mysql-test-volume
Dockerボリュームを指定してコンテナを作成する
docker run --name mysql-for-test -v mysql-test-volume:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d -p 13307:3306 mysql:latest
eb61f634a9b04e86e81470096489938cac77682e20be551c961f7395d18fc836
これでデータが永続化される・・・はず。
今度書く
docker-compose使う方法