Linux(Ubuntu):搭建Docker-Compose

摘要:
它是开发、测试和升级环境的利器。
1. Docker Compose 简介及安装

Docker Compose 是一种用于通过使用单个命令创建和启动 Docker 应用程序的工具。我们可以使用它来配置应用程序的服务。

它是开发,测试和升级环境的利器。

它提供以下命令来管理应用程序的整个生命周期:

  • 启动,停止和重建服务
  • 查看运行服务的状态
  • 流式运行服务的日志输出
  • 在服务上运行一次性命令

要实现 docker compose安装,需要包括以下步骤:

以下是在 Ubuntu 系统中安装 Docker Compose 的说明:

curl -L https://github.com/docker/compose/releases/到这个网址直接下载即可,但是我已经提前下载好了拖进来安装即可

  • 将应用程序环境变量放在 Docker 文件中以公开访问。
  • 使用命令查看环境变量: cat /etc/environment
  • 具体给你显示的环境变量为:

     Linux(Ubuntu):搭建Docker-Compose第1张

  • 也就是说我们把下载好的docker compose放到任意一个环境变量目录下即可使用
  • 使用 mv docker-compose /usr/bin  把docker compose移动到该目录下即可

     Linux(Ubuntu):搭建Docker-Compose第2张

  • 这个时候我们可以看到该权限为和组权限为suchuanqi 可读可写,但不能执行,而且是都不能执行,所以要对权限进行修改,使用命令 chown -R root:root docker-compose   进行修改,具体如下所示:

     Linux(Ubuntu):搭建Docker-Compose第3张

  •  然后设置可执行权限,具体命令如下所示: chmod +x docker-compose   即变为可执行文件

      Linux(Ubuntu):搭建Docker-Compose第4张

  • 然后使用命令 docker-compose version 进行版本的查看,并验证是否能够执行
  • 注意我们真正的操作Docker是基于Docker Compose来进行操作的
2. Docker Compose 使用

创建一个 docker-compose.yml 配置文件:

root@localhost:/usr/local/docker/tomcat# vi docker-compose.yml  在这里创建,docker-compose.yml文件,并编写下面的内容

注意:在编写配置文件是不能够是tab键只能使用空格键进行缩进

version: '3'

services:

  webapp:

    restart: always

    image: training/webapp

    container_name: webapp

    ports:

      - 5000:5000

下面是我电脑里面的配置

version: '3'    制定服务器解析版本

services:       要启动的服务器列表

  tomcat:      服务器的名称为tomcat,随便起不可以重复

    restart: always      这里表示只要docker-compose启动那么tomcat也总是跟着启动

    image: tomcat        这里表示镜像名称为tomcat,如果没有会自动的去docker远程仓库区拉去镜像

    container_name: tomcat        随便启,但是不能够出重复的

    ports:                       映射端口号

      - "8080:8080"

参数说明:

  • version:指定脚本语法解释器版本
  • services:要启动的服务列表
  • webapp:服务名称,可以随便起名,不重复即可
  • restart:启动方式,这里的 always 表示总是启动,即使服务器重启了也会立即启动服务
  • image:镜像的名称,默认从 Docker Hub 下载
  • container_name:容器名称,可以随便起名,不重复即可
  • ports:端口映射列列表,左边为宿主机端口,右边为容器端口

前台运行:

suchuanqi@UbuntuBase:/usr/local/docker/python$ docker-compose up     前台启命令docker-compose up, 但是这种操作并不好会占用主线程,阻止其他线程操作

Creating network "python_default" with the default driver

Creating webapp ...

Creating webapp ... done

Attaching to webapp

webapp    |  * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

后台运行:

suchuanqi@UbuntuBase:/usr/local/docker/python$ docker-compose up -d    这里是后台启动docker-compose,不会占用当前主线程

Creating webapp ...

Creating webapp ... done

lusifer@UbuntuBase:/usr/local/docker/python$

运行效果:

 Linux(Ubuntu):搭建Docker-Compose第5张

通过docker-compose启动了tomcat我们可以通过:

docker-compose logs -f tomcat  进行对tomcat日志的打印工作,可以看到日志
3. Docker Compose 命令

前台运行

docker-compose up

后台运行

docker-compose up -d

启动

docker-compose start

停止

docker-compose stop     注意停止的时候必须在有docker-compose.yml的配置文件中进行使用

停止并移除容器

docker-compose down      这里的删除是在docker ps -a 删除tomcat容器的,因为我的tomcat在docker-compose里面进行设置
4. Docker Compose 实例教程:

Docker Compose 运行 Tomcat

docker-compose.yml 配置文件:

version: '3'
services:
  tomcat:
    restart: always
    image: tomcat
    container_name: tomcat
    ports:
      - 8080:8080
    volumes:
      - /usr/local/docker/tomcat/webapps/:/usr/local/tomcat/webapps/
    environment:
      TZ: Asia/Shanghai
开启tomcat后记得在webapps里面创建一个ROOT文件夹,然后在里面创建一个index.html以供测试使用

Docker Compose 运行 mysql

创建docker-compose.yml 配置文件:使用vi docker-compose.yml创建该文件并进行编译操作

version: '3'
services:
  mysql:
    restart: always
    image: mysql:5.7
    container_name: mysql
    ports:
      - 3306:3306
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
    command:
      --character-set-server=utf8mb4                    这里是设置字符及UTF-8 
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1                        这里是忽略大小写
      --max_allowed_packet=128M
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
    volumes:
      - mysql-data:/var/lib/mysql
 
volumes:
  mysql-data:

我们可以通过

docker-compose logs -f mysql  进行日志的查看

在关闭任何关于docker-compose的先关服务时必须要进入到有docker.compose.yml的文件夹使用:

docker-compose down  进行关闭,不能使用类似于docker stop xxxx等命名,因为这样关闭的话就没有使用docker-compose进行托管了

配置继承环境下的docker-compose   也就是把mysql   tomcat结合在一起进行配置,具体如下所示, 然后部署一个项目:

 Linux(Ubuntu):搭建Docker-Compose第6张

Linux(Ubuntu):搭建Docker-Compose第7张

我们可以通过:

/var/lib/docker/volumes  来进行访问到mysql存放数据文件的的路径

免责声明:文章转载自《Linux(Ubuntu):搭建Docker-Compose》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇问题:C#控制台程序参数;结果:设置与读取C#控制台应用程序Main函数中的参数args物联网在生活中的应用场景下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

zabbix 监控linux tcp连接数

            zabbix 监控linux tcp连接数                                      作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.TCP的状态概述 1>.端口状态转换 2>.TCP 三次握手 3>.四次断开 二.zabbix agent端配置监控TCP...

linux任务计划cron chkconfig工具 systemd管理服务 unit介绍 target介绍

[root@lizhipenglinux01 ~]# crontab -e  编写任务计划no crontab for root - using an empty one 20 11 29 01 1 echo "OK" > /root/cron.log      表示在1月29日(星期一)的11点20分执行:echo  "OK" > /ro...

ZYNQ:使用PetaLinux打包 BOOT.BIN、image.ub

说明 个人还是比较喜欢灵活去管理各个部分的源码。 有关文章:ZYNQ:PetaLinux提取Linux和UBoot配置、源码 编译Linux 取得Linux源代码和配置后,可以在其中执行make,编译Linux。 注意,编译前请导入PetaLinux环境变量: 设置和导出ARCH为arm或者arm64; 设置和导出CROSS_COMPILE,比如aar...

linux环境安装mysql,以及mysql基本的终端操作命令

linux环境下安装mysql服务器、客户端mysql简单的终端操作指令(使用数据库、简单的增删改查和备份恢复)1 SQL: Structured Query Language 结构化查询语言。 运用sql语句,可以对关系型数据库进行操作。 目前常见的关系型数据库有: MySQL oracle...

docker进阶之路-基础篇 | 一:环境搭建

转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061747.html 一、准备工作 查看内核 Docker 要求 CentOS 系统的内核版本高于 3.10,所以要先查看CentOS系统内核版本, 是否满足要求: name -r 结果如图: ​ 由于本文系统为CentOS7....

Linux Node 服务器基础布置流程

一、安装Node 1. 下载Linux二进制文件 可以下载(https://nodejs.org/zh-cn/download/)至本地电脑,再上传至服务器。  也可以直接在服务器上下载: wget https://nodejs.org/dist/v16.13.0/node-v16.13.0-linux-x64.tar.xz  2. 解压文件 假设压缩...