docker run -d --name mytom -v /HOSTFILE:/VOLUMEDIR -p 8001:8080 --network bridge -h t1.magedu.com --dns 114.114.114.114 --add-host www.magedu.com:1.1.1.1 --ip 172.18.12.1 -e JAVA_HOME=/jdk -m 1024m --cpuset=“0-2” --rm -it mycentos/my-tomcat:v1.8 /bin/bash
参数整理:
--name 容器名称mytom
-p(小写) 将容器中的80端口暴露给宿主机,查看暴露成多少 iptables -t nat -vnL,也可是使用docker port t1查看
-p(小写) 8001:80 将容器中的80端口指定到宿主机的固定ip的固定端口8001,ip和8001都可以不填,不填ip指定宿主机的所有ip,不填端口指定宿主机的随机端口。-p可是使用多次,来指定多个端口到宿主机
-P(大写) 启动镜像将dockerfile里设定的暴露端口暴露给宿主机的随机端口,
-v HOSTDIR宿主机目录,VOLUMEDIR是docker容器中的路径
--volumes-from t1 运行容器,使容器和容器t1有着相同的卷设定
--network 指定网络连接方式桥接 bridge,网络命名空间可以自行创建。
--network container:t1 指定容器和容器t1使用相同的网络命名空间
-h 指定hostname为t1.magedu.com
--dns 指定dns服务器为114.114.114.114 可以在容器里面查看/etc/resolv.conf
--add-host 指定域名在host文件中解析,域名www.magedu.com解析为1.1.1.1,才/etc/hosts中可以查看到
--ip 指定容器的ip地址为
--rm 指定容器停止就删除
-it 容器进行交互,后面需要更 /bin/bash
-d 后台运行容器,并返回容器ID;
-e 设置环境变量;
-m 设置容器使用内存最大值;
--cpuset 绑定容器到指定CPU运行;--cpuset=“0-2” or --cpuset=“0,1,2”