【注】此篇文章只是博主(小白)在学习过程中的笔记,发出来只为合适的朋友减少学习时间成本。概念性的东西比较少。

一:入门概念

1.1 为什么使用

Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器;再比如在分布式应用一般包含若干个服务,每个服务一般都会部署多个实例。如果每个服务都要手动启停,那么效率之低、维护量之大可想而知。这时候就需要一个工具能够管理一组相关联的的应用容器,这就是Docker Compose。

1.2 两个重要概念:

  • 项目(Project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
  • 服务(Service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。

 

二:安装

2.1 二进制包在线安装,此方法已经基本行不通,下载太慢

# 下载
curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 授权
sudo chmod +x /usr/local/bin/docker-compose

 

2.2 二进制包离线安装

2.2.1 下载离线安装包

复制链接到浏览器,下载安装文件:

https://github.com/docker/compose/releases/download/1.25.0/docker-compose-Linux-x86_64

下载下来的文件名叫 docker-compose-Linux-x86_64, 改名为:docker-compose,如图:

920c8fa06a780e5f5906bd13ac6189db.png

 

将文件上传到 服务器的 /usr/local/bin 目录下,我的服务器是CentOS7系统,可以借助工具拖动上传,例如finalShell或fstp。

758eaf6f9c197de6d599b4c0dd294bc2.png

 

然后执行以下命令授权。

# 授权
sudo chmod +x /usr/local/bin/docker-compose

以上,docker-compose安装包准备完毕。

 

2.2.2 安装Pip

因为docker-compose使用python语言开发,所以需要Python运行环境,使用Pip来管理Python依赖。

#安装依赖 
yum -y install epel-release 
#安装PIP 
yum -y install python-pip 
#升级PIP 
pip install --upgrade pip

我在升级Pip的时候,会报如下问题,忽略没管。

ba03b075acf0570f1b47bd4f4e8c1150.png

 

验证Pip版本:

[root@instance-jkc7tmyh bin]# pip --version
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)

版本验证通过,说明Pip已经安装好,可以安装Docker-Compose。

先安装一个依赖:

yum install python-devel

再安装Docker-Compose

pip install -U docker-compose==1.25.0

验证docker compose版本,能验证成功,说明已经安装好了。

[root@instance-jkc7tmyh bin]# docker-compose --version
docker-compose version 1.25.0, build 0a186604

最后再来个补全插件的命令

curl -L https://raw.githubusercontent.com/docker/compose/1.25.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

以上docker-compose已经安装好,接下来就是部署项目。

 

补充两个卸载命令吧:

二进制卸载:

rm /usr/local/bin/docker-compose

pip卸载:

pip uninstall docker-compose

三:部署jar包

3.1 创建服务目录和文件。

3.1.1 创建项目目录:

如下图,可以在根目录下创建一个Docker目录,在docker目录下创建一个目录,名称任意,最好和你需要部署的jar的名称一样,主要是好区分,每部署一个项目,就在docker目录下创建一个这样的文件夹就行。

50387c2cb51a4f243acb5bdee7f2d292.png

3.1.2 创建核心配置文件和jar存放的目录

java_uploader 就是我的项目目录,在项目目录下创建 app 目录 和 docker-compose.yml 文件。其中 app 目录存放 jar 包。

553b33ec0079f23aece2c9063055387c.png

docker-compose.yml 内容如下:注意有你需要修改的地方

version: "3.4"
services:
	# 改成你自己的,不改也无所谓
  uploader:
    image: java:8
    #image: bryink/oracle_jdk:8
   # 改成你自己的,不改也无所谓
    container_name: uploader
    working_dir: /app
    network_mode: host
    restart: always
    volumes:
      - ./app:/app
    # jar 包名称必须改成你自己的
    command: java -Xms512M -Xmx2048M -Xss1M -Duser.timezone=GMT+8 -jar /app/uploader-0.0.1.jar --spring.profiles.active=dev
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "10"

3.1.3 添加Jar包和其他配置文件:

将你自己的jar包上传到app目录下即可。

config目录:如果你的项目是用SpringBoot开发才需要,里面存放的 application.yml 配置文件,这里的配置文件会直接覆盖掉你jar包里的配置文件,可以不要。

logs:如果项目中有配置日志输出目录,才需要这个目录,可以不要。

f7ceb97358909336772871fac517650a.png

 

3.2 启动容器

在项目目录下执行以下命令,才会对当前项目生效:

# 创建容器,第一次启动会pull一些资源
docker-compose up -d

# 销毁容器
docker-compose down

# 停止容器
docker-compose stop

# 开始容器
docker-compose start

# 重启容器
docker-compose restart

至此,简单的docker-compose搭建完毕。

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐