拉取镜像
访问hub.docker.com/,检索 nginx
我们可以通过指定TAG,来选择安装不同版本的nginx,拉取最新的镜像直接使用 docker pull nginx
就可以了。
使用 docker images
命令可以查看镜像 ,如下:
启动容器
方式一 使用docker run最简单启动
这种方式只指定端口映射,不会把容器内的配置文件挂载到宿主机上,使用以下命令:
docker run -d --name nginx -p 80:80 35c43ace9216
-
-d 指定容器以守护进程方式在后台运行
-
--name 指定容器名称,此处我指定的是nginx
-
-p 指定主机与容器内部的端口号映射关系,格式 -p [宿主机端口号]:[容器内部端口],此处我使用了主机80端口,映射容器80端口
-
35c43ace9216 是nginx的镜像IMAGE ID
由于nginx配置文件并没有挂载在宿主机上,如果我们需要修改nginx配置,可以使用如下方式:
执行命令:
docker exec -it ba1052282514 /bin/bash
- exec 命令代表附着到运行着的容器内部
- -it 是 -i 与 -t两个参数合并写法,-i -t 标志着为我们指定的容器创建了TTY并捕捉了STDIN
- ba1052282514是我们要进入的容器Id
- /bin/bash 指定了执行命令的shell
进入到nginx容器内部后,我们可以cd /etc/nginx
,可以看到相关的nginx配置文件都在/etc/nginx
目录下
而nginx容器内的默认首页html文件目录为/usr/share/nginx/html
,日志文件位于/var/log/nginx
这种方式,对于需要经常修改配置文件,十分不方面,来,我们看下如何将配置文件映射到宿主机上的呢
方式二 使用docker run挂载配置文件启动
- 在主机/mnt目录下执行
mkdir -p ./nginx/{conf,html,logs}
创建挂载目录
-
将容器内的
nginx.conf
与default.conf
文件分别拷贝到主机/mnt/nginx与目录/mnt/nginx/conf下,分别执行docker cp ba1052282514:/etc/nginx/nginx.conf ./ docker cp ba1052282514:/etc/nginx/conf.d/default.conf ./conf/
cp 命令代表复制
ba1052282514是我们nginx容器的ID,/etc/nginx/nginx.conf 是容器内部nginx.conf 路径
-
执行
docker stop ba1052282514
命令停止刚刚创建的nginx容器,ba1052282514是容器Id,然后执行docker rm ba1052282514
移除容器, -
执行以下命令重新创建容器
docker run -d --name nginx -p 80:80 -v /mnt/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/nginx/logs:/var/log/nginx -v /mnt/nginx/html:/usr/share/nginx/html -v /mnt/nginx/conf:/etc/nginx/conf.d --privileged=true 35c43ace9216
方法三 使用docker-compose工具进行容器编排(强烈推荐)
nginx:
images: nginx:latest
restart: always
container_name: nginx
hostname: 'nginx'
ports:
- 80:80
volumes:
- /mnt/nginx/nginx.conf:/etc/nginx/nginx.conf
- /mnt/nginx/logs:/var/log/nginx
- /mnt/nginx/html:/usr/share/nginx/html
- /mnt/nginx/conf:/etc/nginx/conf.d
在 docker-compose.yml 所在路径下执行该命令 Compose 就会自动构建镜像并使用镜像启动容器
docker-compose up
docker-compose up -d // 后台启动并运行容器
最后说一句
如果这篇文章对您有所帮助,或者有所启发的话,帮忙关注一下,您的支持是我坚持写作最大的动力,多谢支持。
此外,关注公众号:黑色的灯塔,专注Java后端技术分享,涵盖Spring,Spring Boot,SpringCloud,Docker,Kubernetes中间件等技术。