# docker search nginx #在docker hub中查找nginx镜像
# docker pull nginx #拉取nginx官方镜像
使用nginx默认的配置来启动一个nginx实例:
# docker run --name nginx-test -p 8088:80 -d nginx
--name 参数命名容器名称
-d 参数设置容器在后台一直运行
-p 参数端口进行映射,本地8088端口映射到容器内的80端口
# docker ps #列出容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4d11b040dffc nginx "nginx -g 'daemon of…" 4 minutes ago Up 4 minutes 0.0.0.0:8088->80/tcp nginx-test
部署Nginx
1、创建三个目录,存放相关文件
# mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf
www: 目录将映射为 nginx 容器配置的虚拟目录。
logs: 目录将映射为 nginx 容器的日志目录。
conf: 目录里的配置文件将映射为nginx容器的配置文件。
拷贝容器内的Nginx默认配置文件到 本地当前目录下的conf目录,容器ID可以使用命令 docker ps 查看
docker cp 4d11b040dffc:/etc/nginx/nginx.conf ~/nginx/conf
2、部署命令
# docker run -d -p 8090:80 --name nginx-test-web \
-v ~/nginx/www:/usr/share/nginx/html \
-v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v ~/nginx/logs:/var/log/nginx \
nginx
命令参数:
-d 设置容器在后台一直运行
-p 8090:80 将容器的80端口映射到主机的8090端口
–name nginx-test-web 将容器命名为 nginx-test-web
-v ~/nginx/www:/usr/share/nginx/html 将创建的www目录挂载到容器的 /usr/share/nginx/html
-v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 将创建的nginx.conf挂载到容器的 /etc/nginx/nginx.conf
-v ~/nginx/logs:/var/log/nginx 将创建的logs挂载到容器的 /var/log/nginx
启动以上命令后进入 ~/nginx/www 目录:
# cd ~/nginx/www
创建index.html 文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试页面</title>
</head>
<body>
<h1>我的第一个标题</h1>
<p>我的第一个段落。</p>
</body>
</html>
使用docker-compose部署
创建docker-compose.yml 文件,内容如下:
version: '3'
services:
web:
image: nginx
volumes:
- ~/nginx/www:/usr/share/nginx/html
- ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- ~/nginx/logs:/var/log/nginx
ports:
- "8091:80"
container_name: nginx_web_test
在docker-compose.yml 文件存放目录下,执行命令:
# docker-compose up -d
Recreating nginx_web_test_111 ... done
docker-compose up 启动所有服务
-d 参数表示在后台运行
# docker-compose ps #列出项目中目前的所有容器