首页
视频
留言
壁纸
直播
下载
友链
统计
推荐
vue
在线工具
Search
1
记一个报错GC overhead limit exceeded解决方法
942 阅读
2
ElasticSearch ES 安装 Kibana安装 设置密码
654 阅读
3
Teamcity + Rancher + 阿里云Code 实现Devops 自动化部署
339 阅读
4
解决Mybatis-Plus批量插入数据太慢,堪称神速
336 阅读
5
分布式锁Redisson,完美解决高并发问题
320 阅读
JAVA开发
前端相关
Linux相关
电商开发
经验分享
电子书籍
个人随笔
行业资讯
其他
登录
/
注册
Search
标签搜索
AOP
支付
小说
docker
SpringBoot
XML
秒杀
K8S
RabbitMQ
工具类
Shiro
多线程
分布式锁
Redisson
接口防刷
Jenkins
Lewis
累计撰写
146
篇文章
累计收到
14
条评论
首页
栏目
JAVA开发
前端相关
Linux相关
电商开发
经验分享
电子书籍
个人随笔
行业资讯
其他
页面
视频
留言
壁纸
直播
下载
友链
统计
推荐
vue
在线工具
搜索到
2
篇与
的结果
2021-03-12
Docker Compose的介绍安装与使用
一、Docker ComposeCompose 简介Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。Compose 使用的三个步骤:使用 Dockerfile 定义应用程序的环境。使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。最后,执行 docker-compose up 命令来启动并运行整个应用程序。docker-compose.yml 的配置案例如下(配置参数参考下文):实例:# yaml 配置实例 version: '3' services: web: build: . ports: - "5000:5000" volumes: - .:/code - logvolume01:/var/log links: - redis redis: image: redis volumes: logvolume01: {}Compose 安装LinuxLinux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。运行以下命令以下载 Docker Compose 的当前稳定版本:$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose{message type="info"}要安装其他版本的 Compose,请替换 1.24.1。{/message}将可执行权限应用于二进制文件:$ sudo chmod +x /usr/local/bin/docker-compose创建软链:$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose测试是否安装成功:$ docker-compose --version{message type="info"}注意: 对于 alpine,需要以下依赖包: py-pip,python-dev,libffi-dev,openssl-dev,gcc,libc-dev,和 make。{/message}二、Docker Compose使用2.1.准备工作2.1.1 创建一个测试目录:$ mkdir composetest $ cd composetest2.1.2 在测试目录中创建一个名为 app.py 的文件,并复制粘贴以下内容:import time import redis from flask import Flask app = Flask(__name__) cache = redis.Redis(host='redis', port=6379) def get_hit_count(): retries = 5 while True: try: return cache.incr('hits') except redis.exceptions.ConnectionError as exc: if retries == 0: raise exc retries -= 1 time.sleep(0.5) @app.route('/') def hello(): count = get_hit_count() return 'Hello World! I have been seen {} times.\n'.format(count){message type="info"}在此示例中,redis 是应用程序网络上的 redis 容器的主机名,该主机使用的端口为 6379。{/message}2.1.3在 composetest 目录中创建另一个名为 requirements.txt 的文件,内容如下:flask redis2.2 创建 Dockerfile 文件2.2.1 在 composetest 目录中,创建一个名为的文件 Dockerfile,内容如下:FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP app.py ENV FLASK_RUN_HOST 0.0.0.0 RUN apk add --no-cache gcc musl-dev linux-headers COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . CMD ["flask", "run"]2.2.2 Dockerfile 内容解释:①:FROM python:3.7-alpine: 从 Python 3.7 映像开始构建镜像。②:WORKDIR /code: 将工作目录设置为 /code。③:ENV FLASK_APP app.py ENV FLASK_RUN_HOST 0.0.0.0 设置 flask 命令使用的环境变量。④:RUN apk add --no-cache gcc musl-dev linux-headers: 安装 gcc,以便诸如 MarkupSafe 和 SQLAlchemy 之类的 Python 包可以编译加速。⑤:COPY requirements.txt requirements.txt RUN pip install -r requirements.txt 复制 requirements.txt 并安装 Python 依赖项。⑥:COPY . .: 将 . 项目中的当前目录复制到 . 镜像中的工作目录。⑦:CMD ["flask", "run"]: 容器提供默认的执行命令为:flask run。2.3 创建 docker-compose.yml2.3.1 在测试目录中创建一个名为 docker-compose.yml 的文件,然后粘贴以下内容:# yaml 配置 version: '3' services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine"该 Compose 文件定义了两个服务:web 和 redis。①:web:该 web 服务使用从 Dockerfile 当前目录中构建的镜像。然后,它将容器和主机绑定到暴露的端口 5000。此示例服务使用 Flask Web 服务器的默认端口 5000 。②:redis:该 redis 服务使用 Docker Hub 的公共 Redis 映像。2.4 使用 Compose 命令构建和运行您的应用2.4.1 在测试目录中,执行以下命令来启动应用程序:docker-compose up2.4.2 如果你想在后台执行该服务可以加上 -d 参数:docker-compose up -d
2021年03月12日
60 阅读
0 评论
0 点赞
2021-03-05
使用Docker Compose部署SpringBoot应用
Docker Compose是一个用于定义和运行多个docker容器应用的工具。使用Compose你可以用YAML文件来配置你的应用服务,然后使用一个命令,你就可以部署你配置的所有服务了。一、安装1.下载Docker Composecurl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose2.修改该文件的权限为可执行chmod +x /usr/local/bin/docker-compose3.查看是否已经安装成功docker-compose --version二、使用Docker Compose的步骤使用Dockerfile定义应用程序环境,一般需要修改初始镜像行为时才需要使用;使用docker-compose.yml定义需要部署的应用程序服务,以便执行脚本一次性部署;使用docker-compose up命令将所有应用服务一次性部署起来。2.1docker-compose.yml常用命令image指定运行的镜像名称# 运行的是mysql5.7的镜像 image: mysql:5.7container_name配置容器名称# 容器名称为mysql container_name: mysqlports指定宿主机和容器的端口映射(HOST:CONTAINER)# 将宿主机的3306端口映射到容器的3306端口 ports: - 3306:3306volumes将宿主机的文件或目录挂载到容器中(HOST:CONTAINER)# 将外部文件挂载到myql容器中 volumes: - /mydata/mysql/log:/var/log/mysql - /mydata/mysql/data:/var/lib/mysql - /mydata/mysql/conf:/etc/mysqlenvironment配置环境变量# 设置mysqlroot帐号密码的环境变量 environment: - MYSQL_ROOT_PASSWORD=rootlinks连接其他容器的服务(SERVICE:ALIAS)# 可以以database为域名访问服务名称为db的容器 links: - db:database三、Docker Compose常用命令构建、创建、启动相关容器# -d表示在后台运行 docker-compose up -d指定文件启动docker-compose -f docker-compose.yml up -d停止所有相关容器docker-compose stop列出所有容器信息docker-compose ps四、使用Docker Compose 部署应用3.1编写docker-compose.yml文件Docker Compose将所管理的容器分为三层,工程、服务及容器。docker-compose.yml中定义所有服务组成了一个工程,services节点下即为服务,服务之下为容器。容器与容器直之间可以以服务名称为域名进行访问,比如在mall-tiny-docker-compose服务中可以通过jdbcmysql//db:3306这个地址来访问db这个mysql服务。version: '3' services: # 指定服务名称 db: # 指定服务使用的镜像 image: mysql:5.7 # 指定容器名称 container_name: mysql # 指定服务运行的端口 ports: - 3306:3306 # 指定容器中需要挂载的文件 volumes: - /mydata/mysql/log:/var/log/mysql - /mydata/mysql/data:/var/lib/mysql - /mydata/mysql/conf:/etc/mysql # 指定容器的环境变量 environment: - MYSQL_ROOT_PASSWORD=root # 指定服务名称 mall-tiny-docker-compose: # 指定服务使用的镜像 image: mall-tiny/mall-tiny-docker-compose:0.0.1-SNAPSHOT # 指定容器名称 container_name: mall-tiny-docker-compose # 指定服务运行的端口 ports: - 8080:8080 # 指定容器中需要挂载的文件 volumes: - /etc/localtime:/etc/localtime - /mydata/app/mall-tiny-docker-compose/logs:/var/logs注意:如果遇到mall-tiny-docker-compose服务无法连接到mysql,需要在mysql中建立mall数据库,同时导入mall.sql脚本。具体参考使用Dockerfile为SpringBoot应用构建Docker镜像中的运行mysql服务并设置部分。五、使用maven插件构建mall-tiny-docker-compose镜像六、运行Docker Compose命令启动所有服务先将docker-compose.yml上传至Linux服务器,再在当前目录下运行如下命令:docker-compose up -d
2021年03月05日
59 阅读
0 评论
0 点赞