problem description
in the process of development and testing, we often have to do all kinds of test domain names. How to manage domain name resolution elegantly through the lnmp environment established by docker-compose?
only consider docker-compose, not docker run.,docker run. You can specify dns=xxx, or set dns in the default configuration of docker.
start the dnsmasq service in docker-compose and specify a fixed ip, for all services. Set dns to ip, of dnsmasq in the php container
. But after docker-compose up, you can see that the container IP setting is normal, but the dns of the php container is still 127.0.0.11 by default.
is not 172.25.0.5
the key contents of docker-compose.yml are as follows:
related codes
version: "3"
services:
dnsmasq:
image: jpillora/dnsmasq:latest
restart: always
networks:
dnmp_net:
ipv4_address: 172.25.0.5
ports:
- "53:53"
- "5380:8080"
volumes:
- ./dnsmasq/dnsmasq.conf:/etc/dnsmasq.conf:rw
environment:
- HTTP_USER = admin
- HTTP_PASS = xxxxxx
php72:
build:
context: .
args:
PHP_VERSION: ${PHP72_VERSION}
PHP_XDEBUG: ${PHP72_XDEBUG}
PHP_SWOOLE: ${PHP72_SWOOLE}
PHP_REDIS: ${PHP72_REDIS}
REPLACE_SOURCE_LIST: ${REPLACE_SOURCE_LIST}
volumes:
- ${SOURCE_DIR}:/var/www/html/:rw
- ${PHP72_PHP_CONF_FILE}:/usr/local/etc/php/php.ini:ro
- ${PHP72_FPM_CONF_FILE}:/usr/local/etc/php-fpm.d/www.conf:rw
restart: always
cap_add:
- SYS_PTRACE
networks:
dnmp_net:
ipv4_address: 172.25.0.11
dns:
- 172.25.0.5
networks:
dnmp_net:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.25.0.0/24
the environmental background of the problems and what methods you have tried
1. Enter the / etc/hosts
2 of the container modification container, the / etc/resolv.conf, of the container modification container points to the custom dns server
3, start the dnsmasq service in docker-compose, and specify a fixed ip, for all services. Set dns to ip of dnsmasq in the php container
how do you manage domain name resolution in docker test environment? Is there a more scientific posture 0.0