使用Docker Compose部署SpringBoot应用

tech2023-10-17  92

Docker Compose是一个用于定义和运行多个docker容器应用的工具。使用Compose你可以用YAML文件来配置你的应用服务,然后使用一个命令,你就可以部署你配置的所有服务了。

安装 下载Docker Compose:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

修改该文件的权限为可执行:

chmod +x /usr/local/bin/docker-compose/

查看是否已经安装成功:

docker-compose version

如果出现docker-compose 没有找到命令 docker-compose not found、docker-compose命令不存在

centos 7中python-pip模块不存在,是因为像centos这类衍生的发行版,源跟新滞后,或者不存在。即使使用yum去search python-pip也找不到软件包。

为了使用安装滞后或源中不存在的安装包,需要安装扩展源EPEL。扩展源EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。

安装扩展源:sudo yum -y install epel-release

安装python-pip模块:sudo yum install python-pip

执行./docker-compose up -d

[root@fd240 bin]# ./docker-compose

Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg

解决办法:

进入下面的网址下载目前的最新版:

https://github.com/docker/compose/releases/tag/1.14.0-rc2

网页拉到最下面,下载:

docker-compose-Linux-x86_64

然后将文件上传到 /usr/local/bin/ 文件夹下,然后将其重命名为docker-compose,修改此文件的权限,增加可执行:chmod +x /usr/local/bin/docker-compose

然后再运行

[root@fd240 bin]# docker-compose version

docker-compose version 1.14.0-rc2, build 24dae73

docker-py version: 2.3.0

CPython version: 2.7.13

OpenSSL version: OpenSSL 1.0.1t 3 May 2016

可以看到已经没有问题了。

使用Docker Compose的步骤

使用Dockerfile定义应用程序环境,一般需要修改初始镜像行为时才需要使用;

使用docker-compose.yml定义需要部署的应用程序服务,以便执行脚本一次性部署;

使用docker-compose up命令将所有应用服务一次性部署起来。

docker-compose.yml常用命令

指定运行的镜像名称

运行的是mysql5.7的镜像 image :mysql :5.7

container_name 配置容器名称

容器名称为mysql container_name:mysql

ports 指定宿主机和容器的端口映射(HOST:CONTAINER)

将宿主机的3306端口映射到容器的3306端口 port: -3306 :3306

volumes 将宿主机的文件或目录挂载到容器中(HOST:CONTAINER)

将外部文件挂载到myql容器中 volumes: - /mydata/mysql/log :/var/log/mysql - /mydata/mysql/data:/var/lib/mysql - /mydata/mysql/conf:/etc/mysql

environment 配置环境变量

设置mysqlroot帐号密码的环境变量 environment -MYSQL_ROOT_PASSWORD=root

links 连接其他容器的服务(SERVICE:ALIAS)

可以以database为域名访问服务名称为db的容器 links: -db :database

Docker Compose常用命令 构建、创建、启动相关容器:

-d表示在后台运行 docker-compose up -d

停止所有相关容器:

docker-compose stop

列出所有容器信息:

docker-compose ps

使用Docker Compose 部署应用 编写docker-compose.yml文件

Docker Compose将所管理的容器分为三层,工程、服务及容器。docker-compose.yml中定义所有服务组成了一个工程,services节点下即为服务,服务之下为容器。容器与容器直之间可以以服务名称为域名进行访问,比如在mall-tiny-docker-compose服务中可以通过jdbc:mysql://db:3306这个地址来访问db这个mysql服务。

最新回复(0)