Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
前言:
请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i
概念介绍:
Docker
Docker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,它是我们使用其他容器技术的核心。
Docker-Compose
前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build、docker run 等命令操作容器。然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知
优点:
根据定义的docker-compose.yaml配置文件批量容器编排,轻松高效的管理容器定义,Docker就会按照你声明的配置去把所有的容器启动起来及运行
缺点:
但是Docker-Compose只能管理当前主机上的Docker,也就是说不能去启动其他主机上的Docker容器
使用事项:
compose是docker官方的开源项目,需要安装!与它配对使用的是一个docker-compose.yaml文件,docker-compose命令必须在一个包含docker-compose.yaml文件目录下才能使用。
Compose 使用的三个步骤:
- 使用
Dockerfile
定义应用程序的环境。 - 使用
docker-cmpose.yaml
定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。 - 最后,执行
docker-cmpose up
命令来启动并运行整个应用程序。
**docker-cmpose.yaml
**的配置案例如下(配置参数参考下文):
version: "3.0" # 对于docker版本号
services: #定义服务
web: #web引用,自己编写的程序,下面是应用配置
build: . #获取当前目录下Dockerfile文件编译
depends\_on: #代表启动顺序
- db
- redis
ports:
- "5000:5000" #端口暴露
volumes: #挂载路径
- .:/code
- logvolume01:/var/log
links:
- redis
redis: #redis应用
image: redis
deploy:
replicas: 6 #副本数
db: #db应用
images:postgres
volumes:
logvolume01: {}
实践
一、环境准备
在 Linux 系统上安装 Docker
使用compose必然需要docker
1.1 yum安装Docker
yum install docker #安装docker,需要root
1.2 查看版本
docker --version #查看版本
样例输出:
1.3 启动docker
sudo systemctl start docker.service #启动 Docker
sudo systemctl enable docker.service #关闭Docker
在 Linux 系统上安装 Compose
由于compose是docker官方的开源项目,需要安装!!!
1.1 下载compose
# 国外
sudo curl -L "https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 国内(推荐)
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
1.2 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose #授权
1.3 查看版本
docker-compose --version #查看版本
样例输出:
二、项目实施
2.1 创建项目
此处以**Springboot项目为例,其pom.xml依赖**如下
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-redisartifactId>
dependency>
dependencies>
2.2 新增application.properties配置
注:在此示例中,redis
是应用程序网络上的 redis 容器的主机名
#配置启动端口
server.port=8888
#配置redis地址,此处指定后续dockers镜像名称
spring.redis.host=redis
2.3 编写程序计数器
package com.example.compose;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class IndexController {
/**
* .
* 注入redis
*/
@Autowired
private StringRedisTemplate redisTemplate;
/**
* .
* 程序计数器,每访问一次就+1
*
* @return
*/
@GetMapping("/hello")
public String hello() {
Long views = redisTemplate.opsForValue().increment("views");
return "hello docker compose views:" + views;
}
}
2.4 创建 Dockerfile
在你的项目目录中,创建一个Dockerfile。
有关编写 Dockerfile 更多信息,请参阅 Docker 用户指南 和Dockerfile 参考
#指定jdk1.8
FROM java:8
#当前jar拷贝到容器中指定名称
COPY *.jar /app.jar
#程序运行时指定程序端口
CMD ["--server-port=8888"]
#暴露端口
EXPOSE 8888
#运行
ENTRYPOINT ["java", "-jar","/app.jar"]
2.4 编排服务
在你的项目目录中创建一个名docker-compose.yaml
的文件。定义了两个服务:composeapp和redis.
version: '3.0' #对应版本号
services:
composeapp:
build: . #表示获取当前目录下Dockerfile文件进行编译
#dockerfile: Dockerfile #指定当前目录下的文件
image: composeapp #镜像名称
depends\_on: #优先启动
- redis
ports: #端口映射
- "8888:8888"
redis: #拉取镜像
image: "library/redis:alpine"
**友情提示:**上述版本号对比示例图。官网对比链接
2.5 将项目打包
三、服务上传启动
3.1 Linux创建一个目录
mkdir my\_composeapp #创建目录
cd my\_composeapp #进入
3.2 上传相关文件
上传项目打包后的**jar
、Dockerfile
、docker-compose.yaml
**相关配置文件
3.3 启动compose服务
注:docker-compose命令必须在一个包含docker-compose.yaml文件目录下才能使用
docker-compose up
docker-compose up -d #-d【后台启动】
docker-compose down #关闭 【ctrl + c】
样例输出:
项目启动,页面输出日志
3.4 查看运行的容器
此处可见已拉取redis镜像并生成了容器、及已生成java项目运行容器
3.5 访问样例
curl localhost:8888/hello #访问测试
样例输出:
至此,docker-compose使用简直在方便了!!!大大简化了我们的部署工作。学废的小伙伴记得给自己加鸡腿~
总结:
我是南国以南i记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!
-
__EOF__
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1G7yEAUP-1649393417885)(https://blog.csdn.net/bgyb/p/16113709.html)]https://blog.csdn.net/bgyb/p/16113709.html - 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
- 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角**【[推荐](javascript:void(0)😉】**一下。