只需要知道这个!docker-compose片段集合
首先
这是一个可用于复制粘贴的 Docker Compose 配置示例集。
更新记录
-
- 2023.07.19 SQLServerの記載内容を一部更新。Wordpressを追加。
-
- 2021.01.27 SQLServerの記載を修正。WSL2上で実行時のエラー対策。
- 2020.11.11 SQLServerを追加
用法
-
- Mac 和 Windows 都创建一个空目录。
创建一个名为 docker-compose.yml 的文件。
复制粘贴示例内容并保存到该文件中。
将上述文件夹设为当前目录,在 Mac 中打开终端,在 Windows 中打开 PowerShell 或命令提示符。
执行 docker-compose up。
如何在Mac上打开终端?
请参考这个链接:https://qiita.com/yamagh/items/02608e97be22c85cefaa
打开PowerShell的Windows方法
记录案例的集合
MySQL (我的结构化查询语言)
version: '3'
services:
# MySQL
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_DATABASE: appdb
volumes:
- ./db/data:/var/lib/mysql
ports:
- 3306:3306
版本已经指定为8.0,但也可以在5.5、5.7等版本上运行。
连接ID/密码为root/mysql。此外,默认创建的数据库名称为appdb。
如果想要进行更改,请修改环境的相应项目。
只需访问localhost:3306即可连接。
docker-compose.yml文件所在的文件夹将自动创建一个名为db的文件夹,其中将存放MySQL的数据。
清空该文件夹的内容即可对数据库进行初始化(请在关闭时进行清空)。
朱庇特实验室
version: '3'
services:
lab:
image: jupyter/datascience-notebook
environment:
- JUPYTER_ENABLE_LAB=yes
ports:
- "8888:8888"
volumes:
- ./work:/home/jovyan/work
我认为实验室比笔记本更方便易用。另外,我已将工作目录挂载到主文件夹中。只需要在工作目录里创建笔记即可。
gcc可以用来编译和链接C语言程序。
有时候我想要编译非常”厉害(强大)”的源代码。
version: "3"
services:
gcc:
image: gcc
tty: true
volumes:
- ./src:/src
如果不写 tty: true,容器将会立即退出并结束。只需启动容器,然后稍后可以慢慢通过命令行界面进行附加。
SQL Server (only need one option)
SQL Server(只需一个选项)
SQLServer现在可以在Docker上构建。
version: '3'
services:
# SQLServer
db:
image: mcr.microsoft.com/mssql/server:2019-latest
environment:
ACCEPT_EULA: Y
MSSQL_SA_PASSWORD: Your_Password
volumes:
- ./db/mssql:/var/opt/mssql
ports:
- 1433:1433
与MySQL类似,所有有关数据库的数据都存储在/ver/opt/mssql目录下。
如果将其完全删除,可以将数据库初始化,或者将该目录直接复制到其他环境中以进行迁移。
(当然,请在数据库关闭时进行操作。)
2021年1月27日补充
如果在WSL2上使用Docker运行上述的docker-compose.yml文件,会在启动时出现错误。
参考链接:https://stackoverflow.com/questions/59886014/permission-denied-when-persisting-a-container-of-mcr-microsoft-com-mssql-server
如果将卷挂载到 /var/opt/mssql/data 而不是 /var/opt/mssql,就可以成功启动。
version: '3'
services:
# SQLServer
db:
image: mcr.microsoft.com/mssql/server:2019-latest
environment:
ACCEPT_EULA: Y
MSSQL_SA_PASSWORD: Your_Password
volumes:
- ./db/mssql/data:/var/opt/mssql/data
ports:
- 1433:1433
2023年7月19日 更新
在环境变量上设置SA密码,目前推荐使用MSSQL_SA_PASSWORD作为名称,旧名称已经不推荐使用。因此,我们正在修正文章中的环境部分。
参考链接:https://learn.microsoft.com/ja-jp/sql/linux/quickstart-install-connect-docker?view=sql-server-ver16&pivots=cs1-bash
WordPress 是一种广泛使用的内容管理系统。
就连WordPress也可以通过Docker一键启动。
version: '3'
services:
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
只需注意一点,即需要将在db端和wordpress端的环境变量中设置的数据库用户名和密码保持一致。这是为了方便快捷地进行抓取和重建时的推荐做法。
结束
计录范例集将按顺序逐渐增加。