八、docker容器的网络访问(端口映射)

说明:-p指定映射,docker会自动添加一条iptables规则来实现端口映射
(1) -p hostPort:containerPort
docker run -d -p 80:80 nginx:latest
(2) -p ip:hostPort:containerPort(多个容器都想使用80端口)
ifconfig eth0:1 10.0.0.100 up
docker run -d -p 10.0.0.100:80:80 nginx:latest
docker run -d -p 10.0.0.11:80:80 nginx:latest
iptables -t nat -L -n
(3) -p ip::containerPort(随机端口)
docker run -d -p 10.0.0.100::80 nginx:latest
iptables -t nat -L -n
(4) -p 81:80 -p 443:443 可以指定多个-p

九、docker的数据卷管理

9.1 持久化数据卷

cd /srv && docker container cp . 97e0af1229e4:/usr/share/nginx/html
cd /srv && wget http://192.168.12.201/docker_image/xiaoniaofeifei.zip
unzip xiaoniaofeifei.zip
docker run -d -p 80:80 -v /srv:/usr/share/nginx/html nginx:latest
参数说明:
-v src(宿主机的目录) dst(容器的目录)
说明:宿主机和容器做持久化数据卷管理,如果要修改站点目录内容或者代码直接在宿主机修改就会同步到容器中,这样就不用登陆到容器中去修改,省去了很多繁琐的步骤

9.2 练习题

问题:基于nginx启动一个容器,监听80和81,访问80,出现nginx默认欢迎首页,访问81,出现小鸟页面
解答:

echo '    server {
        listen       81;
        server_name  localhost;
        root         /opt;
        index  index.html index.htm;
        location / {
        }
}' >/opt/xiaoniao.conf

docker run -d -p 80:80 -p 81:81 -v \
/opt/xiaoniao.conf:/etc/nginx/conf.d/xiaoniao.conf -v /srv:/opt nginx:latest
网页分别访问:10.0.0.11:80(默认nginx页面) 10.0.0.11:81(小鸟页面)


做事滴水穿石,做人滴水不漏