1 首先创建nginx的安装目录 /home/mynginx
cd /home/mynginx
创建三个目录
mkdir -p /home/mynginx/www /home/mynginx/logs /home/mynginx/conf
使用docker-compose前,先用docker创建一个ngnix容器
拉取镜像
docker pull nginx # 得到临时nginx的镜像
运行镜像
docker run --name nginx -d -p 6082:6082 nginx #得到临时nginx的容器
docker ps -a
查看nginx的容器id
使用命令:docker exec -it 容器id bash
进入容器,观察容器的目录结构
使用命令:docker inspect -f '{{.ID}}' 容器id 得到长格式的容器id
使用长格式的容器id拷贝文件到主机上
拷贝容器文件到主机上
docker cp 长格式的容器id : /etc/nginx/nginx.conf /home/nginx/conf
文件拷贝好了之后,可以将这个nginx的镜像和容器删除了
docker ps -a #得到nginx的容器id
docker stop 容器id # 停止临时nginx的容器
docker rm 容器id # 删除临时nginx的容器
docker images #得到临时nginx的镜像id
docker rmi 镜像id #删除临时镜像
然后在/home/mynginx/www目录下放一个静态文件用于测试
cd /home/mynginx/www
vim index.html
写入以下内容保存退出
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>使用docker的方式来搭建测试</title>
</head>
<body>
<h1>docker 发布 nginx成功!!!!</h1>
</body>
</html>
2 编辑前面拷贝的nginx.conf配置文件,修改nginx.conf
cd /home/nginx/conf
vim nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
server{
listen 5888;
server_name localhost;
charset utf-8;
location / {
root /usr/share/nginx/html/;
try_files $uri $uri/ =404;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
3 编写docker-compose.yml文件
version: '3.3'
services:
nginx:
image: nginx
restart: always
hostname: nginx
container_name: nginx
privileged: true
#暴露代理的端口
ports:
- 5888:5888
volumes:
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./www/:/usr/share/nginx/html/
- ./logs/:/var/log/nginx/
#这个目录的映射关系,是通过前面使用docker创建的nginx,进入容器后观察后的目录
4 启动
docker-compose up -d
5 访问
http://ip:5888
6 整个目录结构为
注意:
docker pull nginx
docker run --name nginx -d -p 6082:6082 nginx
运行上面面命令的的目的就是得到一个临时的nginx镜像和容器,用于拷贝容器的文件到挂载的主机目录,
还有一个作用就是可以通过nginx容器观察conf和log的对应目录,用于编写volumes的映射关系
本文暂时没有评论,来添加一个吧(●'◡'●)