一、Nginx 镜像下载
1. 查找 Nginx 镜像
登录 Docker Hub 官网搜索 Nginx 镜像,或者直接访问 https://hub.docker.com/_/nginx。
也可以在终端使用 docker search nginx
来搜索 Nginx 镜像,OFFICAL 列为 OK 的为官方镜像。
2. 下载 Nginx 镜像
从 Docker Hub 拉取镜像,命令如下:
$ docker pull nginx
使用 docker pull nginx:
来指定下载镜像的 tag,不指定默认为 latest。下载完成后使用 docker images
来查看本地已经下载好的镜像。
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 08393e824c32 3 weeks ago 132MB
二、Nginx 容器运行
安装完成后,可以使用 docker run
命令来运行 Nginx 容器。
1. 配置端口映射
$ docker run --name nginx -p 8080:80 -d nginx 8c3026a0acd14f53e702a9854b2ffe4aa2668a552e11e171b3ae667cbe691d31
--name
:指定容器名称,方便对容器的操作-p :
:指定端口映射,将容器的端口映射到主机的端口-d
:指定容器在后台运行,以守护进程的形式运行8c3026a...
:容器ID,对容器进行操作时用于指定容器
运行成功后可以使用下面命令查看运行中的 Nginx 容器:
$ docker ps # 或 docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8c3026a0acd1 nginx "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 0.0.0.0:8080->80/tcp nginx
打开浏览器访问 localhost:8080
,结果如下:
2. 配置目录绑定
基于前面运行的容器,首先将容器中已经存在的配置等文件复制出来:
# 将容器中的Nginx配置文件目录复制到主机 $ sudo docker cp nginx:/etc/nginx ~/docker # 将容器中的Nginx代理的静态页面目录复现到主机 $ sudo docker cp nginx:/usr/share/nginx/html ~/docker
命令格式:
docker cp container:source_dir host_dir
然后停止并移除刚才启动的容器:
# 停止Nginx容器 $ docker container stop nginx # 移除Nginx容器 $ docker container rm nginx
使用下面命令重新运行Nginx容器:
$ docker run --name nginx -p 8080:80 -v ~/docker/nginx:/etc/nginx -v ~/docker/html:/usr/share/nginx/html -d nginx bc2b1d19570acb245011e607c1baee0706fa52f35c94cf3dc26dcfca1bc59abd
-v :
:指定目录绑定,将主机的目录绑定到容器的目录上,实现文件目录共享
再次打开浏览器访问 localhost:8080
,可以访问到 Nginx 的欢迎页面。在主机中修改 Nginx 代理的页面文件 index.html
,保存后在浏览器中刷新页面:
我们发现,将主机上的目录绑定到容器中,不仅可以实现容器中文件的持久化,也更加方便的对容器中的文件进行修改,因为只需要在主机上修改。