本文为操作指引,所有“#”标注的指令均为可选。
#armbian-software #software id:101
1.启用Docker IPv6支持
docker network inspect bridge ip -6 route show #2409::1/64 vim /etc/docker/daemon.json
拷贝进如下内容
{ "ipv6": true, "fixed-cidr-v6": "2409::1/64", #用ip -6 route show获取的IPv6前缀替换 }
systemctl reload docker && systemctl restart docker docker network inspect bridge
2.拉取nginx镜像并创建容器
docker pull nginx
docker默认采用bridge方式加载运行容器网络,docker会在主机上创建一个名为docker0的虚拟网桥,为从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。docker在主机上创建一对虚拟网卡veth pair设备,Docker将veth pair设备的一端放在新创建的容器中,并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到docker0网桥中。
docker run --name mynginx -p 10081:80 -d nginx #curl 127.0.0.1:10081
3.配置mynginx容器、宿主机映射挂载配置文件和网页文件
mkdir -p /home/dockers/nginx/{html,conf,log} docker cp mynginx:/etc/nginx/nginx.conf /home/dockers/nginx/conf docker cp mynginx:/usr/share/nginx/html /home/dockers/nginx docker cp mynginx:/var/log/nginx /home/dockers/nginx/log docker stop mynginx docker rm -f mynginx #vim /home/dockers/nginx/conf/default.conf vim /home/dockers/nginx/conf/nginx.conf
4.修改nginx.conf配置文件
user nginx; worker_processes auto; events { worker_connections 512; } http { log_format '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; server { listen [::]:port1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://localhost:8096; } } server { listen [::]:port2; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://localhost:10085; } } #include conf.d/default.conf }
此处采用host网络模式创建、加载容器,mynginx容器与宿主机在同一个网络中,但没有独立IP地址。容器在host模式下,不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,可以直接使用宿主机的IP和端口。
docker run --name mynginx --net host \ -v /home/dockers/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /home/dockers/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf \ -v /home/dockers/nginx/html:/usr/share/nginx/html \ -v /home/dockers/nginx/log:/var/log/nginx -d nginx
5.验证与调优
(1)关注防火墙状态和放行情况
ufw delete allow 8096/tcp ufw delete allow 10085/tcp ufw allow 3388 ufw allow 3399 ufw reload
(2)可以修改DNS服务器上的A记录,如由二级域名(如www)修改为@,简化浏览器输入。
文章评论