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
posted @ 2020-04-03 00:05  duxiao  阅读(230)  评论(0编辑  收藏  举报