簡體   English   中英

如何在docker for mac中設置主機

[英]How to set hosts in docker for mac

當我之前使用docker時,我可以使用docker-machine ssh default來設置docker的機器/etc/hosts ,但是在docker for mac中我無法訪問它的VM,因為它沒有它。 那么,問題是how to set hosts in docker for mac 我的輔助域名想要指向另一個IP。

我找到了解決方案,使用此命令

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

現在,編輯Docker VM中的/etc/hosts
要退出screen ,請使用Ctrl + a + d

以下是我使用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

您可以通過此腳本自動執行此操作,在啟動時運行此腳本或登錄時間將為您節省..

#!/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

您必須創建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

端口與主機docker機器的端口綁定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM