docker常用操作命令
docker常用命令
docker run
docker ps
docker exec
docker inspect 容器名 //查看容器的一些信息
docker history --no-trunc 镜像名 //查看镜像的构建步骤
docker ps -s 容器的size和容器层总大小
docker镜像是分层和容器是单独一层只读镜像的
docker volume create 卷名
docker run -itd --name nginx -d -v test:/usr/local/nginx/html/ nginx
容器网络模式
bridge(默认)
host(主机)
container( 联合挂载式网络模式)
macvlan (没用过)
none(无网络环境,不常用)
overlay(用于docker swarm,docker swarm已被淘汰)
docker run --net=xx指定容器使用的网络类型
-
默认bridge
- 不隔离
-
host(使用主机网络)
- network namespaces的host模式,容器网络和宿主机一样
docker run --net host 。。。。
-
none
- docker不会去设置容器的网络信息,用户可以自行设置,或者说容器不需要ip,例如一个专门跑编译工作的容器
-
macvlan
- macvlan会共享物理网卡所链接的外部网络
- 使用macvlan网络驱动程序为每个容器的虚拟网络接口分配MAC地址,使其看起来像是直接连接到物理网络的物理网络接口。在这种情况下,您需要在Docker主机上指定一个物理接口以用于macvlan,以及macvlan的子网和网关。
docker network create -d macvlan \ --subnet=172.16.86.0/24 \ --gateway=172.16.86.1 \ -o parent=eth0 pub_net
-
container
- 联合挂载式网络模式
- 容器启动的时候选择和已存在的容器共用同一个network namspaces,进行排错网络不正常的问题
docker run -tid --rm --name test01 alpine docker run -tid --rm --name test02 --net=container:test01 alpine
容器互联 自定义的网桥是通的
docker network create test
docker run -tid --rm --net test --name test01 alpine
docker run -tid --rm --net test --name test02 alpine
docker exec test01 ping test02
欢迎大家评论转发