本文为操作指引,所有“#”标注的指令均为可选。
#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)修改为@,简化浏览器输入。





文章评论