不使用Docker Compose来完成相同的任务
首先
我经常听说使用docker-compose很方便,但我不知道它到底有多方便,所以我做了一些调查。
我并没有做详细的调查,所以如果有错误之处,请不吝告诉我,我会很高兴的。
本次我们将以快速入门指南:使用Compose和WordPress为例,继续进行。
创建网络、创建容器、将容器加入网络。
当涉及到docker-compose时
※写完yml文件之后
$ docker-compose up
如果仅考虑Docker单独情况的话。
# ネットワークの作成
$ docker network create my_wordpress_default
# dbのコンテナを作成
$ docker run --restart=always \
-v my_wordpress_db_data:/var/lib/mysql \
--name my_wordpress_db_1 \
-e MYSQL_ROOT_PASSWORD="somewordpress" \
-e MYSQL_DATABASE="wordpress" \
-e MYSQL_USER="wordpress" \
-e MYSQL_PASSWORD="wordpress" \
mysql:5.7
# wordpress用のコンテナを作成
$ docker run --restart=always \
-v my_wordpress_wordpress_data:/var/www/html \
--name my_wordpress_wordpress_1 \
-e WORDPRESS_DB_HOST="my_wordpress_db_1" \
-e WORDPRESS_DB_USER="wordpress" \
-e WORDPRESS_DB_PASSWORD="wordpress" \
-e WORDPRESS_DB_NAME="wordpress" \
-p "8000:80" \
wordpress:latest
# ネットワークにdbのコンテナを追加
$ docker network connect my_wordpress_default my_wordpress_db_1
# ネットワークにwordpress用のコンテナを追加
$ docker network connect my_wordpress_default my_wordpress_wordpress_1
关机
当使用docker-compose进行关闭操作时,容器将停止运行。
在使用Docker Compose的情况下
$ docker-compose down
如果只考虑 Docker 单独的情况
$ docker stop my_wordpress_wordpress_1
$ docker stop my_wordpress_db_1
整理清理
在docker-compose中,进行清理操作将删除网络和容器。
在使用 Docker Compose 的情况下
docker-compose down --volumes
如果只考虑 Docker 单独的情况
# コンテナを削除
$ docker rm my_wordpress_wordpress_1
$ docker rm my_wordpress_db_1
# ネットワークを削除
$ docker network rm my_wordpress_default
# ボリュームを削除
$ docker volume rm my_wordpress_db_data
$ docker volume rm my_wordpress_wordpress_data
最后
哦,这真方便啊。
虽然可以用Shell脚本来整合命令,但这样的话启动和删除会变成两个不同的脚本,文件会变得很多。(虽然也可以整合成一个脚本,但我不想让它变得太复杂)
Docker可以使用rm -f命令批量停止和删除,但为了适配docker-compose,我还是分开写了。