LoginSignup
3
1

More than 3 years have passed since last update.

DockerでMysqlコンテナを作る

Posted at

この記事について

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使う方法

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1