计算机系统应用教程网站

网站首页 > 技术文章 正文

使用docker-compose安装nginx

btikc 2024-09-12 12:04:01 技术文章 12 ℃ 0 评论

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的映射关系

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表