【发布时间】:2021-04-07 15:01:25
【问题描述】:
我使用 docker compose 构建服务,我想将 mysql 设置为静态,我尝试使用 networks 指令但它不起作用,错误说 ip 已经被占用,每次我重新启动 windows ,mysql ip被改变了,有时是172.18.0.3,或者172.18.0.4,有谁知道如何给容器分配一个静态ip?这是yml
version: '3.7'
services:
nginx:
container_name: hki_nginx
image: nginx:latest
ports:
- 80:80
- 4433:443
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/conf:/etc/nginx/conf.d
- ./src:/var/www
links:
- php
- php72
php:
container_name: hki_php
image: php:5.6-fpm-ext1
volumes:
- ./src:/var/www
- ./php/php.ini:/usr/local/etc/php/php.ini
- ./php/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf
#- ./php/phpfpm/:/usr/local/etc/php-fpm.d/
php72:
container_name: web_php
image: php:7.2-fpm-ext2
volumes:
- ./src:/var/www
- ./php72/php.ini:/usr/local/etc/php/php.ini
- ./php72/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf
#- ./php/phpfpm/:/usr/local/etc/php-fpm.d/
mysql:
container_name: hki_mysql
image: mysql:5.7
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/my.cnf:/etc/mysql/conf.d/my.cnf
- ./mysql/init:/docker-entrypoint-initdb.d/
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=*Abcd1234
- MYSQL_USER=abc
- MYSQL_PASS=*Abcd1234
#networks:
#default:
#ipv4_address: 172.18.0.3
【问题讨论】:
-
你可以试试 [link] stackoverflow.com/questions/39493490/…
-
你能把这个减少到minimal reproducible example,并包括你得到的实际错误吗? (删除不必要的容器,
volumes:,像links:这样的过时选项,以及像container_name:这样的覆盖;仅包含演示问题所需的最少代码。)解释为什么您尝试手动设置也可能会有所帮助IP 地址,因为您通常不需要直接访问它们。
标签: docker docker-compose wsl-2