Docker 安装Nginx

SunnyFan大约 2 分钟约 555 字

Docker 安装Nginx

拉取nginx镜像

docker pull nginx

启动nginx

直接启动一个nginx容器,端口映射到本地80端口,然后将容器的配置文件拷贝到本地,然后停止并移除容器,最后启动容器并挂载本地目录

docker run --name nginx -p 80:80 -d nginx
docker ps

因为nginx需要经常需要变更配置并需要发布静态文件,需要最好通过文件映射出来

本地创建管理目录

mkdir -p /etc/nginx
mkdir -p /etc/nginx/www
mkdir -p /var/www/html
mkdir -p /etc/nginx/conf
mkdir -p /etc/nginx/logs

copy到刚创建的管理目录

docker cp nginx:/etc/nginx/nginx.conf /etc/nginx/
docker cp nginx:/etc/nginx/conf.d /etc/nginx/conf/
docker cp nginx:/usr/share/nginx/html/ /etc/nginx/www/
docker cp nginx:/var/log/nginx/ /etc/nginx/logs/

停止并移除容器

docker stop nginx
docker rm nginx

启动容器并目录挂载

docker run --name nginx -p 80:80 \
--restart=always \
-v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /etc/nginx/www/:/usr/share/nginx/html/ \
-v /var/www/html/:/var/www/html/ \
-v /etc/nginx/logs/:/var/log/nginx/ \
-v /etc/nginx/conf/:/etc/nginx/conf.d \
--privileged=true -d nginx 
  • --name 容器名称
  • -p 端口映射
  • -v 目录映射
  • --privileged=true 以root权限运行
  • -d 后台运行
  • --restart 重启命令

docker容器可以设置开机自启动

-- restart具体参数值详细信息
    no - 容器退出时,不重启容器
    on-failure - 只有在非0状态退出时才从新启动容器
    always - 无论退出状态是如何,都重启容器
#  如果启动完容器时未指定 --restart=always ,可通过 update 命令更改;
docker update --restart=always b5be158c7014 # b5be158c7014为容器id,通过docker ps -a命令查看

通过容器id,操作容器

# 查看所有已经创建的容器
docker ps -a

# 通过容器id启动容器
docker start b5be158c7014

# 通过容器id 停止容器
docker stop b5be158c7014

# 通过容器id,重新启动容器
docker restart b5be158c7014 

docker rm b5be158c7014

防火墙放行端口80

#查看防火墙目前的放行端口列表
firewall-cmd --list-ports
#添加防火墙放行端口(permanent代表永久生效)
firewall-cmd --add-port=80/tcp --permanent
#重新加载防火墙(添加完放行端口一定要重新加载防火墙)
firewall-cmd --reload