启动一个容器

docker run -itd -m 10g --name python3 --restart=always --net host -v /root/python_env:/root/python_env docker.io/python:3.6.8

  • -itd其中-d:后台启动;-t:进入终端;-i:获得一个交互式的连接
  • --name 给镜像取一个别名
  • --privileged=true 使container内的root拥有真正的root权限。
  • --restart=always 当docker启动时,自动重启容器,always可以换成任意int值,代表重启几次
  • -m 10g 限制内存10g
  • -p port1:port2 -p是publish的缩写不是port,用于开放端口,作用类似于防火墙,port1是外部服务器端口,port2是容器端口;也可以-p 53:53/tcp只映射tcp或者udp,不写tcp/udp默认映射所有
  • -v path1:path2本地文件路径:容器文件路径
  • --net host 使用宿主网络
  • -e username="yalong" 添加到环境变量

容器停止/删除

docker stop/rm containerId

进入/退出一个容器

docker exec -it containerId /bin/bash
exit,ctrl+D

内存限制

-m 3m限制3M
示例(运行python容器,限制10G): docker run -itd -m 10g --name python3 --restart=always --net host -v /root/python_env:/root/python_env docker.io/python:3.6.8

查看内存限制

在容器内执行 cat /sys/fs/cgroup/memory/memory.limit_in_bytes

磁盘I/O限制

1、–device-read-bps
限制Docker容器每秒磁盘读的速度
2、–device-read-iops
限制Docker容器每秒磁盘读的I/O
3、 --device-write-bps
限制Docker容器每秒磁盘写的速度
4、–device-write-iops
限制Docker容器每秒磁盘写的I/O

网络

--net xxx,--network xxx

  1. host,容器与宿主共用网络
  2. bridge,桥接网络,此时要记得暴露服务端口
  3. none,无网络
  4. 自定义的,比如下面定义的my-net,就可以使用--net my-net在run的时候加入网络

多个容器互通网络

  1. docker network create my-net # 创建了一个名为"my-net"的网络
  2. docker network connect my-net server-a a服务连接
  3. docker network connect my-net server-b b服务连接
  4. docker network connect my-net server-c c服务连接
  5. docker network inspect my-net #查看桥接网络信息

查看网络信息

docker network ls 可以列出所有的网络信息,比如上述的四种网络模式和他们的NETWORK ID

查看某个网络模式里有哪些容器

docker inspect {NETWORK ID}

查看某个容器的信息

docker inspect {container ID}