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构建即可。
  • 相关阅读:
    组策略导入导出secedit
    ipad常见错误
    ipad系统路径
    内核操作注册表例子
    WoW64子系统
    win2003 shutdown命令
    regedit 导入注册表
    windbg for CLR
    WM_POWERBROADCAST
    OpenSSL命令
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/10313115.html
Copyright © 2011-2022 走看看