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构建即可。

使用docker-compose部署nginx的更多相关文章

  1. Docker Compose部署 nginx代理Tomcat集群

    一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...

  2. Docker Compose 部署Nginx服务实现负载均衡

    Compose简介: Compose是Docker容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose,不再需要使用shell脚本来启动容器.Comp ...

  3. docker - compose 部署 Nginx

    主要介绍 docker 中 Nginx 的部署及项目目录挂载券的方法.docker 中部署一个服务,有三种方法,分别是 docker run.Dockerfile.docker-compose . 下 ...

  4. Docker Compose 部署前后端分离应用

    部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...

  5. Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  6. 在Docker下部署Nginx

    在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...

  7. 使用Docker Compose部署基于Sentinel的高可用Redis集群

    使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...

  8. Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  9. 在Windows Server 2019通过Docker Compose部署Asp.Net Core

    一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...

  10. 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin,password

    场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...

随机推荐

  1. vhdl——type

    TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型 TYPE 数据类型名 IS 数据类型定义 常用的用户自定义的数据类型有枚举型,数组型,记录型.其中枚举型的在状态机的描述中经常使用到 ,数 ...

  2. APP需求调研、对比

    二.人脸验证 1.芝麻认证 : 0.4元/次,需要企业企业认证.不能有与芝麻信用类似的业务,如:保险... 2.旷视 : 0.5/次.企业认证.业务限制 3. 百度人脸识别 :  企业认证. 4.科大 ...

  3. 洛谷 P1441 砝码称重

    题目描述 现有n个砝码,重量分别为a1,a2,a3,……,an,在去掉m个砝码后,问最多能称量出多少不同的重量(不包括0). 输入输出格式 输入格式: 输入文件weight.in的第1行为有两个整数n ...

  4. 测试md

    一级标题 table class="top_ta" width="100%" border="0" cellspacing="0& ...

  5. .net Json 反序列化时,属性带点

    .net Json 反序列化时,属性带点 使用[JsonProperty("xxx.xxx")] static void Main(string[] args) { string ...

  6. 微信小程序原生开发简介

    简介: 总结: 1. 逻辑层使用js引擎,视图层使用webview渲染 2. 微信小程序已经支持了绝大部分的 ES6 API 3. 可以自动补全css的兼容语法 文档:https://develope ...

  7. git同步远程已删除的分支和删除本地多余的分支

    使用 git branch -a 可以查看本地分支和远程分支情况 但远程分支(红色部分)删除后,发现本地并没有同步过来. 一. 同步本地的远程分支 查看本地分支和追踪情况: git remote sh ...

  8. 【BZOJ4419】[SHOI2013]发微博(???)

    [BZOJ4419][SHOI2013]发微博(???) 题面 BZOJ 洛谷 题解 一道\(easy\),每个点维护一下要给周围的点加上多上,如果额外连了一个点进来就给他把标记减掉,如果删掉了一条边 ...

  9. Redhat 用代理连外网

    设置 /etc/yum.conf 添加proxy=http://web-proxy.corp.xx.com:8080 /etc/yum.repos.d/rhel-source.repo 里面改成ena ...

  10. cf1088D Ehab and another another xor problem (构造)

    题意:有两数a,b,每次你可以给定c,d询问a xor c和b xor d的大小关系,最多询问62次($a,b<=2^{30}$),问a和b 考虑从高位往低位做,正在做第i位,已经知道了a和b的 ...