Docker 安装 Nginx
Docker 安装 Nginx
查找Docker Hub 上的 nginx 镜像
[[email protected] ~]# docker search nginx
拉取官方的镜像
$ docker pull nginx
下载结束后,查看镜像
[[email protected] ~]# docker images
可以在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像。
运行Nginx
[[email protected] ~]# docker run -p 8080:80 --name nginxtest nginx
命令是启动docker中的Nginx容器,命名为nginxtest,并将宿主机(服务器)的8080端口和容器的80端口映射。
查看容器启动情况
[[email protected] ~]# docker ps
显示names为nginxtest的容器,说明容器已经启动成功。
通过浏览器访问
因为将Nginx容器的80端口映射到了服务器8080端口上了,所以访问服务器的8080端口
说明Nginx也启动成功了。
查看容器Nginx配置
在容器中开启一个交互模式的终端,这样就可以查看容器中的文件
[[email protected] ~]# docker exec -it 4fdb96249c92 /bin/bash
或者
[[email protected] ~]# docker exec -it nginxtest /bin/bash
4fdb96249c92 --容器的CONTAINER ID (通过docker ps查询)
nginxtest – 容器的别名
如上图所示,可以通过命令查看容器的文件。
查看nginx.conf配置文件目录
[email protected]:/# nginx -t
)
查看一下Nginx目录结构
我安装的这个版本目录结构和网上的教程不太一样,导致映射配置文件后,怎么配置都无法生效。nginx.conf并没有在etc/nginx/conf目录下。
主机中的nginx.conf挂载到容器的nginx.conf
将服务器的配置文件挂载到容器中,这样我们修改配置文件会方便一些。
退出nginx容器,将容器中的nginx.conf先拷贝到宿主机中:
[email protected]:/etc/nginx# exit
exit
[[email protected] ~]# docker cp nginxtest:/etc/nginx/nginx.conf /data/nginx/conf/backnginx.conf
将容器中/etc/nginx/nginx.conf文件 复制到宿主机的/data/nginx/conf目录下,并命名为backnginx.conf
停止nginx容器,删除这个测试容器。重新创建一个容器,并进行配置文件映射
[[email protected] ~]# docker stop nginxtest
[[email protected] ~]# docker rm nginxtest
docker run --name nginx -d -p 80:80
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /data/nginx/logs:/var/log/nginx
-v /data/nginx/html:/usr/share/nginx/html
nginx
这样就可以将配置文件、log、静态页面映射到宿主机中。需要修改或者查看直接在宿主机中修改或者查看就可以了。需要注意的是,配置文件虽然映射到宿主机中,但是如需配置路径,还需配置成容器中的路径。
其他命令
修改配置文件重启nginx容器
docker exec -it nginx service nginx reload
查询docker中nginx容器的日志的前10行
docker logs --tail="10" nginx
docker容器中安装vim(如果下载不下来,需要配置下国内镜像)
apt-get update
apt-get install vim