zoukankan      html  css  js  c++  java
  • 使用docker-compose部署nginx

     

     

    1、新建docker-compose.yml文件,文件的基本模板如下:(由于yml格式比较严格,注意空格缩进)

    
    version: '2.0'
    
    services:
      nginx:
        restart: always
        image: nginx:1.11.6-alpine
        ports:
          - 8080:80
          - 80:80
          - 443:443
        volumes:
          - ./conf.d:/etc/nginx/conf.d
          - ./log:/var/log/nginx
          - ./www:/var/www
          - /etc/letsencrypt:/etc/letsencrypt
    
    

    参数说明:

    • version:版本号,好像我这上面2和2.0有区别,不能写成2,写成2的话,docker-compose up -d 时会报错,提示版本号要写成2.0的样子,不过有的地方我看着直接写成2也是可以的,可能是我的docker-compose版本不一致。
    • service:就是要定义的docker容器
    • nginx:容器的名称
    • restart:设置为always,表明此容器应该在停止的情况下总是重启,比如,服务器启动时,这个容器就跟着启动,不用手动启动,服务器启动之后,进入到docker-compose.yml文件路径下,执行docker-compose ps可以看到,该容器正在运行。
    • image:这个是需要依赖的容器,也就是nginx软件,可以到docker官方镜像上找到最新版的镜像。
    • ports:这个是容器自己运行的端口号和需要暴露的端口号。比如: - 8080:80,表示容器内运行着的端口是80,把端口暴露给8080端口,从外面访问的是8080端口,就能自动映射到80端口上。
    • volumes:这个是数据卷。表示数据、配置文件等存放的位置。(- . 这个表示docker-compose.yml当前目录位置开始创建这个文件)

    2、运行构建镜像。

    如果配置文件没有出错,执行如下命令(在docker-compose.yml当前目录)

    [root@rainbow nginx]# docker-compose up -d
    Creating nginx_nginx_1 ... 
    Creating nginx_nginx_1 ... done
    
    
    • 由于之前我构建过,所以它只是重新启动,没有构建。如果第一次构建,可能速度有点慢。

    3、查看容器运行状态

    [root@rainbow nginx]# docker-compose ps
        Name              Command          State                     Ports                    
    -----------------------------------------------------------------------------------------
    nginx_nginx_1   nginx -g daemon off;   Up      0.0.0.0:443->443/tcp, 0.0.0.0:8086->80/tcp 
    [root@rainbow nginx]# 
    
    • 从State可以看出,此容器正在运行,状态为UP,Ports上可以看出,容器运行着的端口和暴露的端口。

    4、启动、停止容器

    [root@rainbow nginx]# docker-compose stop
    Stopping nginx_nginx_1 ... done
    [root@rainbow nginx]# 
    
    • 说明:docker-compose stop,如果没有指定容器,则会把docker-compose.yml文件中配置的所有容器停止。如果只想停止某个容器,则需要指定容器名。使用docker-compose ps列出所有容器:
    [root@rainbow nginx]# docker-compose ps
        Name              Command          State                     Ports                    
    -----------------------------------------------------------------------------------------
    nginx_nginx_1   nginx -g daemon off;   Up      0.0.0.0:443->443/tcp, 0.0.0.0:8086->80/tcp 
    [root@rainbow nginx]# 
    
    • 看得出,容器名为nginx,注意,是nginx,不是nginx_nginx_1。然后就可以停止容器了。
    [root@rainbow nginx]# docker-compose stop nginx
    Stopping nginx_nginx_1 ... done
    [root@rainbow nginx]# 
    
    • 查看状态
    [root@rainbow nginx]# docker-compose ps
        Name              Command          State    Ports 
    -----------------------------------------------------
    nginx_nginx_1   nginx -g daemon off;   Exit 0         
    [root@rainbow nginx]# 
    
    • 可以看得出,容器已经停止。

    5、删除容器

    如果不需要这个容器或者容器运行中需要重新构建,则可以删除这个容器。

    [root@rainbow nginx]# docker-compose rm nginx
    Going to remove nginx_nginx_1
    Are you sure? [yN] y
    Removing nginx_nginx_1 ... done
    [root@rainbow nginx]#
    
    • 删除之后,重新使用docker-compose up -d构建即可。
  • 相关阅读:
    URAL 2046 A
    URAL 2056 Scholarship 水题
    Codeforces Gym 100286I iSharp 水题
    Codeforces Gym H. Hell on the Markets 贪心
    Codeforces Gym 100286G Giant Screen 水题
    Codeforces Gym 100286B Blind Walk DFS
    Codeforces Gym 100286F Problem F. Fibonacci System 数位DP
    Codeforces Gym 100286A. Aerodynamics 计算几何 求二维凸包面积
    Codeforces Gym 100418K Cards 暴力打表
    Codeforces Gym 100418J Lucky tickets 数位DP
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/10313115.html
Copyright © 2011-2022 走看看