了解Docker(-compose)的便利之处(使用时的参考信息列表)
引子
最初只是在工作中使用docker-compose,而某人创建了一组设置,并且以”请使用这个命令”的方式给我。
突然心血来潮,想要重新建立一个Wordpress网站/也想要搭建Grafana/或许还需要Node-RED之类的工具。
一开始因为能方便使用Hyper-V,所以考虑在Hyper-V上创建一个映像,但是发现网络有问题。
(无法访问Github的HTTPS……)
由于已经无法找到解决方案,我放弃了。
因为我大致知道docker-compose可以下载和使用所需的应用程序/系统,所以就决定尝试一下用docker-compose。
虽然我并没有完全理解到很深,但是我会把参考的信息记下来。
在Windows上安装Docker
-
- ググってDocker-for-Windowsにたどり着いてインストーラーでインストール
https://docs.docker.com/docker-for-windows/install/
前はHyper-V上に構成してたので、Win10 ProとHomeではインストール手順が違っていたはずだが、今はWSLを使う(パフォーマンスもこっちの方が良いらしい)っぽいのでHomeでも同じかもしれない
Hyper-V・・・もう要らんか・・・?
WSLが入っていないとインストール後にDocker-Desktopの設定の時に「WSLをインストールするまで動かへんで」と言ってくるので、ダイアログに従ってWSLをインストールする
创建一个docker-compose.yml文件。
暫且將docker-compose.yml寫下來,我知道它會下載並建立,所以我嘗試著寫下去。
然而,我不知道該寫些什麼。
参考信息的来源
-
- docker-composeにWordpressを入れる書き方
https://docs.docker.jp/compose/wordpress.html
コピペで良い
設定の内容は読むとなんとなくわかる
启动Docker
以管理员权限启动Power Shell。
> docker-compose up -d
我知道这个,因为我在工作中使用过。
停用Docker
以管理员权限启动PowerShell。
> docker-compose down
如果将音量(包括设置和存储的地方)统一关闭的话,如果在数据库中未指定音量,每次关闭Docker容器都会导致数据被删除。
> docker-compose down -v
然后,注意到WordPress的语言设置没有被保存。
关于volumes的设置
以下是有关WordPress的说明:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
“哦,我理解了,db的volumes的db_data会关联保存在volumes的db_data上。”
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
- wordpress_html:/var/www/html
volumes:
db_data:
wordpress_html:
所指定的部分,是指卷的路徑在Windows的路徑中不容易理解的指定。
在參考網站中,
wordpress:
volumes:
- ./wordpress/html:/var/www/html
只指定了路径,并没有使用类似于WordPress的卷。
我认为这是根据指定的路径创建卷的共享目录,或者是相信Docker会自动创建卷的区别。
(因为我一直在做上述操作,做了几次后,我无法访问数据库,所以我停止了。。可能是因为目录内的文件损坏了之类的原因。。。)
参考之信息
-
- wordpressのvolumesに設定するべきパス
https://qiita.com/tomokei5634/items/75d2501cfb968d0cfab5
volumes指定に関する説明
https://qiita.com/gentaro/items/7dec88e663f59b472de6#drvfs%E3%81%AE%E9%9A%8E%E5%B1%A4%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88
volumesに関するリファレンス
https://docs.docker.jp/compose/compose-file.html?highlight=volumes#volumes-volume-driver
在将grafana等组件集成时参考了那些
-
- DBを複数使う方法
https://www.it-swarm-ja.tech/ja/database/%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%9Fdockercompose/826471742/
grafanaをdocker-composeに設定する方法
https://qiita.com/__Rayleigh__/items/4da75f467cab385d1006
GrafanaCloud以外のプラグインを使いたかったので、こっちはトップレベルのvolumesを使わない
我的感受
在Hyper-V上创建一个WordPress环境,如果https无法正常工作,可能会被卡住很多天,但是在docker-compose中,我可以在两个小时内创建四个容器。
我对docker-compose深深着迷了。