不使用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,我还是分开写了。

广告
将在 10 秒后关闭
bannerAds