docker映射宿主机hosts文件

因为docker容器自带Hosts文件,宿主机修改hosts文件容器内不同步,会给开发和测试带来麻烦,想要同步宿主机hosts文件主要有三种方式:

1. 直接在容器内修改

# 查看所有容器
docker ps -a
CONTAINER ID  IMAGE   COMMAND   CREATED   STATUS   PORTS   NAMES
8a4cc0829c07  ghcr.io "/init"   23 hours ago  Up 23 hours  noname
# 进入容器
docker exec -it 8a4cc0829c07 bash
# 修改内部hosts文件
vi /etc/hosts
# 刷新
systemctl restart nscd

弊端:操作繁琐,存在缓存,hosts更新不及时。

2. 在docker启动命令中添加hosts

docker run -d \
  --name=noname \
  -e TZ=Asia/Shanghai \
  -p 16881:16881 \
  --add-host=reddit:8.8.8.8 \
  --restart unless-stopped \
  noname

弊端:每次修改hosts需要删除容器,重新启动容器,对不能停止运行的业务不适用;如果配置文件不映射到宿主机会带来配置的时间成本。

3. 使用host模式对宿主机hosts文件进行映射

docker run -d \
  --name=noname \
  -e TZ=Asia/Shanghai \
  --add-host=reddit:8.8.8.8 \
  --network=host \
  --restart unless-stopped \
  noname

弊端:host模式不能使用自定义端口映射和路由规则,这些配置与宿主机一致,所以-p 与-icc 参数无效,如果添加了这两个参数会提示警告:Published ports are discarded when using host network mode

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇