之前我使用泊坞窗时,我可以使用docker-machine ssh default
在泊机的机器/etc/hosts
中设置主机,但在 docker for mac 中,我可以使用#{1}}。因为它没有它,所以访问它的VM。
那么,问题是how to set hosts in docker for mac
?
我的辅助域名想要指向另一个IP。
答案 0 :(得分:3)
我找到了一个解决方案,使用此命令
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
现在,编辑Docker VM中的/etc/hosts
要退出screen
,请使用Ctrl + a + d
。
答案 1 :(得分:1)
以下是我使用bash脚本执行此操作的方法,因此Docker for Mac重新启动之间的更改仍然存在。
cd ~/Library/Containers/com.docker.docker/Data/database
git reset --hard
DFM_HOSTS_FILE="com.docker.driver.amd64-linux/etc/hosts"
if [ ! -f ${DFM_HOSTS_FILE} ]; then
echo "appending host to DFM /etc/hosts"
echo -e "xxx.xxx.xxx.xxx\tmy.special.host" > ${DFM_HOSTS_FILE}
git add ${DFM_HOSTS_FILE}
git commit -m "add host to /etc/hosts for dns lookup"
fi
答案 2 :(得分:1)
您可以通过此脚本自动执行此操作,在启动时运行此脚本或登录时间将为您节省时间。
#!/bin/sh
# host entry -> '10.4.1.4 dockerreigstry.senz.local'
# 1. run debian image
# 2. check host entry exists in /etc/hosts file
# 3. if not exists add it to /etc/hosts file
docker run --name debian -it --privileged --pid=host debian nsenter \
-t 1 -m -u -n -i sh \
-c "if ! grep -q dockerregistry.senz.local /etc/hosts; then echo -e '10.4.1.4\tdockerregistry.pagero.local' >> /etc/hosts; fi"
# sleep 2 seconds
# remove stopped debian container
sleep 2
docker rm -f debian
我创建了一篇博文,其中包含有关此主题的更多信息。
https://medium.com/@itseranga/set-hosts-in-docker-for-mac-2029276fd448
答案 3 :(得分:0)
您必须创建docker-compose.yml
文件。此文件将位于Dockerfile
的同一路径上
例如,我使用这个docker-compose.yml文件:
version: '2'
services:
app:
hostname: app
build: .
volumes:
- ./:/var/www/html
working_dir: /var/www/html
depends_on:
- db
- cache
ports:
- 80:80
cache:
image: memcached:1.4.27
ports:
- 11211:11211
rabbitmq:
image: rabbitmq:latest
ports:
- 5672:5672
db:
image: postgres:9.5.3
ports:
- 5432:5432
environment:
- TZ=America/Mazatlan
- POSTGRES_PASSWORD=root
- POSTGRES_DB=restaurantcore
- POSTGRES_USER=rooms
- POSTGRES_PASSWORD=rooms
端口与主机泊坞机的端口绑定。