【发布时间】:2022-10-13 15:05:26
【问题描述】:
我正在尝试在 ubuntu 20.04 EC2 实例上的 sysbox 运行时中运行 docker。
码头工人必须连接到特定的网络。
sudo docker run --runtime=sysbox-runc --network=mynetwork -it -d mydocker start.sh
我收到错误消息:
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: container_linux.go:425: starting container process caused: process_linux.go:607: container init caused: switching Docker DNS: rootfs_linux.go:1385: writing /etc/resolv.conf caused: open /etc/resolv.conf: permission denied: unknown.
当我没有在 docker run 命令中指定网络时,docker 会按预期启动。所以我可以调查 /etc/resolv.conf 内部发生了什么:
root@bf26ac9a77cd:/# findmnt /etc/resolv.conf
TARGET SOURCE FSTYPE OPTIONS
/etc/resolv.conf /dev/nvme0n1p1[/var/lib/docker/containers/bf26ac9a77cd8cd1386d0b699614143aa6196092e06723d09649b979266bddf9/resolv.conf] ext4 rw,relatime,discard
root@bf26ac9a77cd:/# ls -l /etc/resolv.conf
-rw-r--r-- 1 nobody nogroup 607 Aug 29 06:52 /etc/resolv.conf
root@bf26ac9a77cd:/# touch /etc/resolv.conf
touch: cannot touch '/etc/resolv.conf': Permission denied
从环境隔离的角度来看,这听起来很合理。但是如何将 docker 连接到某个网络?
【问题讨论】:
-
用于使网络成为 mynetwork 的网络驱动程序是什么
标签: linux docker docker-networking docker-in-docker