something_about_docker

sudo docker -i -t ... -i是允许与容器的stdin进行交互。-t是在新容器内指定一个伪终端或终端。 docker logs 2b1b7a428627 可以直接查看容器内的stdout,包括已经退出的实例。 sudo docker stats 可以以类似top的工具监视各实例的状态。还可以加-a之类的其他参数,具体见-h。 对于带有-d的后台运行的实例,可以使用一下两种方法将其转入前台: sudo docker attach 2b1b7a428627 sudo docker exec -it 2b1b7a428627 /bin/bash 区别是exec是在容器中启动新的程序,使用-it将其转入前台。这样当退出时,容器不会被停止。 你可以这样导出一个容器到本地: sudo docker export 1e560fca3906 > ubuntu.tar 然后这样导入它: cat docker/ubuntu.tar | docker import - test/ubuntu:v1 # 也可以通过URL导入,如下 sudo docker import http://example.com/exampleimage.tgz example/imagerepo Docker的-P参数是将容器使用的端口随机映射到本地的可用端口。而-p xxx:xx是将本地端口xxx绑定到容器的xx端口。 可以使用sudo docker port bf08b7f2cd89来查看一个实例的端口转发,当然也可以写实例的名字。 可以使用sudo docker top bf08b7f2cd89来查看实例中的进程。 如果要绑定UDP协议的端口,需要在-p后的容器端口后面加上/udp。 多个Docker容器实例除了可以通过端口相互连接,还能通过docker network连接。类似于创建了一个虚拟网络。 # 查看所有docker network sudo docker network ls # 创建一个 bridge 类型的 docker network,-d仅用于指定网络类型 docker network create -d bridge test-net # 创建容器实例并将其连接到刚刚创建的网络 docker run -itd --name test1 --network test-net ubuntu /bin/bash docker run -itd --name test2 --network test-net ubuntu /bin/bash # 你现在可以直接在test1中ping test2,docker会自动配置好相关映射。 宿主机的/etc/docker/daemon....

February 29, 2024 · 1 min · 148 words · IAKSH