拉取镜像
docker pull nginx
启动容器
docker run --name nginx-0 -p 80:80 -d nginx
配置挂载
mkdir -p /xx/nginx/logs /xx/nginx/conf/conf.d
${containerId} 替换成自己刚启动的nginx containerId
docker cp ${containerID}:/etc/nginx/nginx.conf /xx/nginx/conf
容器内nginx配置路径:
/etc/nginx/nginx.conf #配置文件
/var/log/nginx #log目录
/usr/share/nginx/html #默认网页目录
删除后重新配置参数并启动
docker rm -f ${containerID}
docker run -d -p 80:80 --name nginx-0 -v /xx/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /xx/nginx/logs:/var/log/nginx -v /xx/nginx/conf/conf.d:/etc/nginx/conf.d nginx
添加站点配置
在/xx/nginx/conf/conf.d 下添加网站反向代理的配置
server{
listen 80;
charset utf-8;
server_name xx.com;
location / {
proxy_pass http://localhost:8080;
proxy_redirect default;
}
}
转发到宿主机端口
docker desktop(win、mac)使用host.docker.internal
即可访问到宿主机
server{
listen 80;
charset utf-8;
server_name xx.com;
location / {
proxy_pass http://host.docker.internal:8080;
proxy_redirect default;
}
}
linux 启动时加上 –network host 启动 会直接暴露端口在宿主机,
同时也可以直接访问其他宿主机端口
转发到其他容器
启动时使用 –link 参数连接到其他容器后,即可转发到其他容器。
假设另一容器name为node
docker run -d --name nginx -p 80:80 --link node:node nginx:latest
在conf内即可使用node访问到node容器
curl http://node:9000/
使用docker内部网络
docker network inspect bridge
可以看到容器内部的ip地址。
在容器内使用该地址即可访问到对应的容器
curl http://172.17.0.2/