通常,我会在项目目录中创建一个名为“docker”的文件夹,这样我就可以对不同的项目使用不同的配置。我把所有docker文件都放在这个文件夹里。我创建了这个docker compose文件来处理一个使用mysql v5.5的项目
version: "3"
services:
mysql:
image: mysql:5.5
ports:
- 13307:3306
environment:
- MYSQL_ROOT_PASSWORD=123
volumes:
- mysqldata:/var/lib/mysql
container_name: mysql
volumes:
mysqldata:
driver: "local"
现在我需要创建另一个使用mysql v.5.6的项目
那么对于这个项目,应该如何查看相同的文件呢?特别是卷、服务名和容器名。
谢谢。
1条答案
按热度按时间oyjwcjzk1#
您可以在一个yaml定义中使用多个服务和卷。这样地:
version: "3" services: mysql-v1: image: mysql:5.5 ports: - 13307:3306 environment: - MYSQL_ROOT_PASSWORD=123 volumes: - mysqldata-v1:/var/lib/mysql container_name: mysql-v1 mysql-v2: image: mysql:5.6 ports: - 13308:3306 environment: - MYSQL_ROOT_PASSWORD=123 volumes: - mysqldata-v2:/var/lib/mysql container_name: mysql-v2 volumes: mysqldata-v1: driver: "local" mysqldata-v2: driver: "local"
您可以按自己的喜好配置映像、容器名称和卷。另一种方法是使用env变量作为参数。您可以通过以下方式配置compose:
version: "3" services: mysql: image: mysql:5.5 ports: - ${port}:3306 environment: - MYSQL_ROOT_PASSWORD=123 volumes: - mysqldata:/var/lib/mysql container_name: mysql-port-${port} volumes: mysqldata: driver: "local"
然后您需要做的就是“export port=2222”,例如将端口设置为2222,然后使用compose。这将把容器的端口和名称都设置为mysql-port-2222。