【注】此篇文章只是博主(小白)在学习过程中的笔记,发出来只为合适的朋友减少学习时间成本。概念性的东西比较少。
一:入门概念
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,如图:
将文件上传到 服务器的 /usr/local/bin 目录下,我的服务器是CentOS7系统,可以借助工具拖动上传,例如finalShell或fstp。
然后执行以下命令授权。
# 授权
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的时候,会报如下问题,忽略没管。
验证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目录下创建一个这样的文件夹就行。
3.1.2 创建核心配置文件和jar存放的目录
java_uploader 就是我的项目目录,在项目目录下创建 app 目录 和 docker-compose.yml 文件。其中 app 目录存放 jar 包。
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:如果项目中有配置日志输出目录,才需要这个目录,可以不要。
3.2 启动容器
在项目目录下执行以下命令,才会对当前项目生效:
# 创建容器,第一次启动会pull一些资源
docker-compose up -d
# 销毁容器
docker-compose down
# 停止容器
docker-compose stop
# 开始容器
docker-compose start
# 重启容器
docker-compose restart
至此,简单的docker-compose搭建完毕。