1、安装:docker pull nginx:latest
2、查看本地镜像:docker images
3、运行:docker run --name nginx-test -p 8080:80 -d nginx
–name nginx-test:容器名称。
-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
-d nginx: 设置容器在在后台一直运行。
4、docker run -it -p 80:80 -v pwd
/logs:/var/log/nginx dockerfile/nginx
这个命令会在当前目录下创建logs目录,存放access.log和error.log。
5、查看都有哪些容器:docker ps -a
6、进入容器(containerID 是容器的ID):docker exec -it containerID /bin/bash
用ls就可以查看哪些文件
7、文件映射:
先在外部建立文件夹 :mkdir /etc/nginx/
在这里插入代码片
#docker run -d -p 80:80 --name nginx --net host -v /etc/nginx/default.conf:/etc/nginx/conf.d/default.conf -v /etc/nginx:/etc/nginx/conf.d nginx
命令说明:
-p 80:80: 将容器的 80 端口映射到主机的 80 端口。
–name nginx :将容器命名为 nginx 。
–net host :启动模式 建议使用 否则做负载均衡会有问题! 如果添加此语句,出现错误。
原因:
docker启动时指定–network=host或-net=host,如果还指定了-p或-P,那这个时候就会有此警告,并且通过-p或-P设置的参数将不会起到任何作用,端口号会以主机端口号为主,重复时则递增。
解决:
解决的办法就是使用docker的其他网络模式,例如–network=bridge,这样就可以解决问题,
docker的网络模式:
bridge模式: Docker的默认设置
host模式
none模式
container模式: 使用时要指定容器名
overlay模式
-v /etc/nginx/default.conf:/etc/nginx/conf.d/default.conf:将我们自己创建的 nginx目录下文件挂载到容器的 /etc/nginx/conf.d/default.conf。
-v /etc/nginx:/etc/nginx/conf.d 挂载目录
目录到目录 文件到文件
修改Nginx配置文件之后使之生效方法:
docker exec -it nginx service nginx reload
如果不启作用
docker stop nginx docker start nginx