记得先安装docker哟
镜像
搜索镜像
我们需要有nginx的镜像包,我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为https://hub.docker.com
进行搜索,也可以使用命令行进行搜索
docker search nginx
Hub搜出来第一个结果就是。我们点进去,觉得麻烦的可以直接复制这行话docker pull nginx
,默认拉取的 tag
为latest
的镜像。(命令格式 docker pull NAME[:TAG]
)
也可以点击Tags
寻找你想要的版本,复制右边的命令。如docker pull nginx:stable
拉取镜像
打开命令行开始进行拉取
完成后我们查看下镜像文件,执行 docker images
可以看到刚刚拉取的nginx镜像
Run
跑个最简单的
# 创建一个新的容器并运行。名字为 nginxtest,监听端口8081,-d后台运行容器,使用tags为stable的nginx 镜像
docker run --name nginxtest -p 8081:80 -d nginx:stable
--name : 容器的名字
-p : 指定端口映射 格式为:主机(宿主)端口:容器端口
-d : 后台运行容器
镜像 nginx:stable
我们上面指定的是本机的8081端口,所以直接访问http://localhost:8081
OK,搞定简单的测试就完成了。不过如果后续需要添加新的nginx
配置文件的话需要进入容器非常的不方便。可以把主机的文件挂载进去,使用-v
参数。
接下来我们删除掉刚刚的容器,重新开始。
先查看下刚刚的容器,使用命令
# 显示运行中的容器
docker ps
# 显示所有的容器 -a :显示所有的容器,包括未运行的。
docker ps -a
先将容器中的主配置文件nginx.conf
拉出来,还有conf.d
文件夹拉出来,方便接下来使用。
# 进入 ~/Documents/docker/test/nginx文件夹
#将容器nginxtest中/etc/nginx/conf.d目录拷贝到当前目录下
docker cp nginxtest:/etc/nginx/conf.d ./
#将容器nginxtest中/etc/nginx/nginx.conf拷贝到当前目录下
docker cp nginxtest:/etc/nginx/nginx.conf ./
#将容器nginxtest中/usr/share/nginx/html拷贝到当前目录下,这边默认default.conf中默认的地址是/usr/share/nginx/html,这边先拉下来以方便后面测试用。
docker cp nginxtest:/usr/share/nginx/html ./
# 完成后查看文件
接下来先删除刚刚的测试容器,先暂停然后进行删除,可以使用NAME
或者CONTAINER ID
对容器进行操作。
# 停止运行 nginxtest 容器
docker stop nginxtest
# 删除 nginxtest 容器
docker rm nginxtest
绑定主机目录
# 当前目录:~/Documents/docker/test/nginx
# 上面docker cp 出来的文件
# 目录下文件:conf.d nginx.conf html
# 开始运行命令。
docker run --name nginxtest -p 8081:80 \
-v ~/Documents/docker/test/nginx/conf.d:/etc/nginx/conf.d \
-v ~/Documents/docker/test/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v ~/Documents/docker/test/nginx/html:/usr/share/nginx/html \
-d nginx:stable
接下来我们进入~/Documents/docker/test/nginx/html
文件夹中看到有一个index.html
。我们对他进行修改测试。
修改成hello world 进行测试。
访问8081
端口,成功修改。
就这样简单的nginx
就起来了。
# 几个常用的命令
# 获取容器nginxtest的日志
docker logs nginxtest
# 获取容器nginxtest信息
docker inspect nginxtest
# 容器 nginxtest 中开启一个交互模式的终端
docker exec -it nginxtest bash
# 停止nginxtest容器
docker stop nginxtest
# 删除nginxtest容器
docker rm nginxtest