来源:https://zhuanlan.zhihu.com/p/81750064
注意:在windows环境下创建容器需要用双引号,否则失败。
1、下载Centos 7镜像
docker pull centos
2、启动Centos 7容器
docker run --privileged=true --cap-add SYS_ADMIN -it -p 8080:8080 -p 80:80 -p 9000:9000 -p 9001:9001 -p 9002:9002 -p 9003:9003 -p 9004:9004 -p 9005:9005 --name centos7 -d --restart always centos:7 /usr/sbin/init
--privileged=true 指定容器是否是特权容器。这里开启特权模式。
--cap-add SYS_ADMIN 添加系统的权限。不然,系统很多功能都用不了的。
-e container=docker 设置容器的类型。
-it 启动互动模式。
/usr/sbin/init 初始容器里的CENTOS。
以上的参数是必需的。不然,建立的CENTOS容器不能正常使用和互动。
如果没有-it参数,容器会不停启动。
如果没有初始化和特权等等的开关,就不能使用systemctl。所以,以上的开关和设置是一样不能少的。
3、进入centos
docker exec -it centos7 /bin/bash
DOCKER 给运行中的容器添加映射端口
方法1
1、获得容器IP
将container_name 换成实际环境中的容器名
1
|
docker inspect `container_name` | grep IPAddress |
2、 iptable转发端口
将容器的8000端口映射到docker主机的8001端口
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000
方法2
1.提交一个运行中的容器为镜像
1
|
docker commit mycontainerid centos7-base
|
2.运行镜像并添加端口
1
|
docker run -p 9010-9020:9010-9020 --name=centos7-project -d |