docker-compose 安装部署 Nginx

作者: 星辰大海的精灵 | 来源:发表于2024-02-05 09:47 被阅读0次

    创建 nginx 主目录

    mkdir/usr/local/nginxcd/usr/local/nginx

    创建 nginx 的子目录

    创建 nginx.conf 配置文件,也可以启动一个 nginx容器复制 容器里的配置文件到 主机的 nginx 主目录下

    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;

    }

    conf.d 里面的一个 default.conf(一个 server)

    server{

          listen 80;

          server_name localhost docker.xieboke.net;

          charset utf-8;

          location / {

              # 此处一定要改成nginx容器中的目录地址,宿主机上的地址容器访问不到

              # 命令必须用 root, 不能用 alias

              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;

          }

        }

    拉取 nginx 最新版镜像

    docker pull nginx

    查看本地镜像

    docker images

    后台启动一个容器

    docker run-d--name nginx nginx

    获取容器ID 或 直接使用容器别名

    docker ps-a

    启动 Nginx 容器后,容器内部会生成 Nginx 的配置文件(其他想要的文件自行复制),将其复制到主机 Nginx  对应文件夹内

    docker cp nginx:/etc/nginx/nginx.conf/usr/local/nginx

    配置文件复制完了之后,就可以刚创建的 nginx 容器了

    先停止 nginx 容器

    docker container stop nginx

    然后 在删除 容器

    docker container rm nginx

    部署容器

    创建 docker-compose.yml 文件

    version: '3'

    services:

      nginx:

        restart: always

        container_name: nginx

        image: nginx

        ports:

          - 80:80

          - 443:443

        volumes:

          - /usr/local/nginx/html:/usr/share/nginx/html

          - /usr/local/nginx/www:/var/www

          - /usr/local/nginx/logs:/var/log/nginx

          # 有可能会出现不能挂载,这个时候用手动拷贝配置文件就行

          - /usr/local/nginx/nginx.conf/:/etc/nginx/nginx.conf

          - /usr/local/nginx/etc/cert:/etc/nginx/cert

          - /usr/local/nginx/conf.d:/etc/nginx/conf.d

        environment:

          - NGINX_PORT=80

          - TZ=Asia/Shanghai

        privileged: true

    docker-compose 后台启动容器(-d 后台启动)

    docker-compose up -d

    docker 查看创建的 nginx  容器

    docker ps

    docker-composer 常用命令

    # 拉取工程中所有服务依赖的镜像

    docker-compose pull

    # 拉取工程中 nginx 服务依赖的镜像

    docker-compose pull nginx

    # 前台启动

    docker-compose up

    # 后台启动

    docker-compose up -d

    # -f 指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定,指定多个 yml

    docker-compose -f docker-compose.yml up -d

    # 输出日志,不同的服务输出使用不同的颜色来区分

    docker-compose logs

    # 跟踪日志输出

    docker-compose logs -f

    # 关闭颜色

    docker-compose logs --no-color

    # 列出工程中所有服务的容器

    docker-compose ps

    # 列出工程中指定服务的容器

    docker-compose ps nginx

    # 在工程中指定服务的容器上执行 echo "helloworld"

    docker-compose run nginx echo "helloworld"

    # 进入工程中指定服务的容器

    docker-compose exec nginx bash

    # 当一个服务拥有多个容器时,可通过 --index 参数进入到该服务下的任何容器

    docker-compose exec --index=1 nginx bash

    # 暂停工程中所有服务的容器

    docker-compose pause

    # 暂停工程中指定服务的容器

    docker-compose pause nginx

    # 恢复工程中所有服务的容器

    docker-compose unpause

    # 恢复工程中指定服务的容器

    docker-compose unpause nginx

    # 重启工程中所有服务的容器

    docker-compose restart

    # 重启工程中指定服务的容器

    docker-compose restart nginx

    # 启动工程中所有服务的容器

    docker-compose start

    # 启动工程中指定服务的容器

    docker-compose start nginx

    # 停止工程中所有服务的容器

    docker-compose stop

    # 停止工程中指定服务的容器

    docker-compose stop nginx

    # 通过发送 SIGKILL 信号停止工程中指定服务的容器

    docker-compose kill nginx

    # 删除所有(停止状态)服务的容器

    docker-compose rm

    # 先停止所有服务的容器,再删除所有服务的容器

    docker-compose rm -s

    # 不询问是否删除,直接删除

    docker-compose rm -f

    # 删除服务容器挂载的数据卷

    docker-compose rm -v

    # 删除工程中指定服务的容器

    docker-compose rm -sv nginx

    # 停止并删除工程中所有服务的容器、网络

    docker-compose stop

    # 停止并删除工程中所有服务的容器、网络、镜像

    docker-compose down --rmi all

    # 停止并删除工程中所有服务的容器、网络、数据卷

    docker-compose down -v

    # 打印所有服务的容器所对应的镜像

    docker-compose images

    # 打印指定服务的容器所对应的镜像

    docker-compose images nginx

    # 打印指定服务容器的某个端口所映射的宿主机端口

    docker-compose port nginx 80

    # 显示工程中所有服务的容器正在运行的进程

    docker-compose top

    # 显示工程中指定服务的容器正在运行的进程

    docker-compose top nginx

    相关文章

      网友评论

        本文标题:docker-compose 安装部署 Nginx

        本文链接:https://www.haomeiwen.com/subject/yhpfadtx.html