只需要知道这个!docker-compose片段集合

首先

这是一个可用于复制粘贴的 Docker Compose 配置示例集。

更新记录

    • 2023.07.19 SQLServerの記載内容を一部更新。Wordpressを追加。

 

    • 2021.01.27 SQLServerの記載を修正。WSL2上で実行時のエラー対策。

 

    2020.11.11 SQLServerを追加

用法

    1. Mac 和 Windows 都创建一个空目录。

创建一个名为 docker-compose.yml 的文件。
复制粘贴示例内容并保存到该文件中。
将上述文件夹设为当前目录,在 Mac 中打开终端,在 Windows 中打开 PowerShell 或命令提示符。

执行 docker-compose up。

如何在Mac上打开终端?

请参考这个链接:https://qiita.com/yamagh/items/02608e97be22c85cefaa

打开PowerShell的Windows方法

image.png

记录案例的集合

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端的环境变量中设置的数据库用户名和密码保持一致。这是为了方便快捷地进行抓取和重建时的推荐做法。

结束

计录范例集将按顺序逐渐增加。

广告
将在 10 秒后关闭
bannerAds