假设您有一个很长的坞-撰写文件,其中有许多容器,它们在码头网络中相互通信。让我们称之为“堆栈”。您想要启动这个堆栈3次,每一次都有一个稍微不同的配置。要做到这一点,你可以说:
docker-compose -p pizza up
docker-compose -p pie up
docker-compose -p soda up
但是,如果将任何端口公开给主机,则此操作将失败:
nginx:
image: nginx:alpine
ports:
- "80:80"
networks:
- my_app_net
它将失败,因为主
我想列出我的Linux机器上的所有网络名称空间。到目前为止,我发现了两种推荐的方法来做到这一点:
ip netns list
和
lsns --type=net
不幸的是,这两个命令都没有列出所有的名称空间!第一种只列出在/var/run/netns中找到的名称空间,而第二种只能找到至少运行了一个进程的名称空间。例如,Docker将将其名称空间保存在/var/run/docker/netns中(因此它们不会被its显示),并且有一些名称空间没有运行过程(因此它们不会被lsns显示)。是否有任何命令可以打印主机上的所有网络命名空间?
我工作的Ubuntu 17.2 64位和安装码头使用安装指南.当docker-compose up遇到问题时。
当fire命令显示错误时,如下所示:
data is up-to-date
db is up-to-date
Starting web
ERROR: for web Cannot start service web: oci runtime error: exec: "./entrypoint.sh": stat ./entrypoint.sh: no such file or directory
ERROR: Encountered errors while b
我已经设置了一个带有ubuntu映像的Docker容器。与输入容器的网络命名空间并尝试相同的命令时,从curl容器获得不同的结果。这里发生了什么?
# Set up the container
docker run -d -it --name mycontainer ubuntu
docker exec mycontainer apt update
docker exec mycontainer apt install -y curl
# Run curl but get two different outputs
docker exec mycontainer curl http://ya
对kubernetes来说是新的。前几天我关注了kubernetes的一个教程。我忘了我在做什么。运行docker ps会显示许多k8s*的容器。 $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ce38bbf370b f3591b2cb223 "/api-server --kubec…" 3 h
我有一个使用kubadm创建的kubernetes集群,其中有一个主服务器和两个工作人员。法兰绒被用作网络插件。注意到所有工作节点和主节点上都有docker0桥,但是集群网络正常工作。如果我们在kubernetes集群中使用像法兰绒这样的网络插件,那么docker0桥是否会被设计掉呢?
docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 02:42:ad:8f:3a:99 brd ff:ff:ff:ff:ff:ff
inet 172.17.
似乎向其他Docker容器公开服务的首选方式是容器链接,它设置了一些环境变量,然后您必须在应用程序代码中使用这些变量来查找主机名和端口号:
psql -h $PG_PORT_5432_TCP_ADDR -p $PG_PORT_5432_TCP_PORT
有没有什么原因没有通过端口转发以一种对应用程序透明的方式来完成?因此,以同样的方式,我可以在容器内的标准端口80上运行我的web服务器,并让Docker确定要使用的实际端口,我可以这样做
psql -h 0.0.0.0 # no -p necessary, we use the default port
端口转发将在我启动docker时设
默认情况下,我们在主机上有一个名为docker0的网桥,作为docker网络的一个组件。当我们运行docker容器时,它创建了一个vethxxx管道,该管道将docker0与一个点绑定在一起,并将容器与另一个点eth0绑定在一起。
我在试图找到主机上那些eth0接口的踪迹。我希望通过以下方式找到一些网络名称空间:
ip netns show
但这很明显。那么,我如何在主机上看到容器的eth0接口的表示呢?