略
https://hub.docker.com/_/nginx?tab=tags
这里选择官方镜像1.22.0版本
docker search nginx docker pull nginx:1.22.0
docker images
用于存放默认页面、日志、配置文件,把这些文件挂载到宿主机上好处是:
在需要频繁修改Nginx配置的场景中,不需要关注容器中的数据,直接删除重建容器就好。
如果已经提前把对应nginx版本需要挂载的文件打包好了,这里直接解压放在对应的路径即可,不需要执行下面从容器复制文件的步骤。
cd /opt tar -zxvf /opt/docker-nginx.tar.gz
没有这些文件的话,就创建目录,从容器中复制过来。
mkdir -p /opt/docker-nginx
先简单创建容器运行,从容器里面复制要挂载的文件到宿主机上。
docker run --name nginx -p 80:80 -d nginx:1.22.0
docker cp nginx:/etc/nginx/nginx.conf /opt/docker-nginx/ ls -la /opt/docker-nginx/ docker cp nginx:/etc/nginx/conf.d/ /opt/docker-nginx/conf/ docker cp nginx:/usr/share/nginx/html/ /opt/docker-nginx/html/ docker cp nginx:/var/log/nginx/ /opt/docker-nginx/logs/
复制出的docker-nginx目录结构如下图:
在
/opt
目录下生成文件docker-nginx.tar.gz
cd /opt tar -czvf docker-nginx.tar.gz /opt/docker-nginx/* ls /opt
docker stop nginx docker rm nginx
docker run -p 80:80 \ -v /opt/docker-nginx/nginx.conf:/etc/nginx/nginx.conf \ -v /opt/docker-nginx/logs:/var/log/nginx \ -v /opt/docker-nginx/html:/usr/share/nginx/html \ -v /opt/docker-nginx/conf:/etc/nginx/conf.d \ -v /etc/localtime:/etc/localtime \ --name nginx \ --restart=always \ -d nginx:1.22.0
参数说明:
- -p 映射端口,格式为“宿主机端口:容器端口”
- -v 挂载文件
docker run -it -v /test:/soft centos /bin/bash 冒号":"前面的目录是宿主机目录,后面的目录是容器内目录 容器目录不可以为相对路径 宿主机目录如果不存在,则会自动生成
- -e TZ=Asia/Shanghai 设置时区
- --privileged=true 让容器中的root用户拥有真正的root权限
- --name 容器名字,以后可以使用这个名字启动或者停止容器
- --restart=always docker启动时自动启动容器
- -d 指定要启动的镜像名
如下图,执行后返回容器id没有报Error,查看容器列表,nginx容器状态正常,则安装成功。
docker ps -a
浏览器访问
http://ip:80
,可以看到nginx
页面
如果安装失败,查看容器列表是否已有nginx容器,有的话需要删除容器后再重新创建。