Docker Compose 实践及梳理

上一节:IDEA 配合 Dockerfile 部署 SpringBoot 工程 Docker Compose 可以实现 Docker 容器集群的编排,可以通过 docker-compose.yml 文件,定义我们的服务及其需要的依赖,轻松地运行在测试、生产等环境 文档 Product manuals Compose file version 3 reference Docker 从入门到实践 【中文】 安装 Compose Compose 依赖 Docker Engine,所有要保证环境安装了 Docker,可参考官方教程,主要分为两步: # 1. 下载 Compose 只执行文件到 usr/local/bin/ 目录 # 下载失败可以参考下一小结提供地址安装 sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 2. 对 Compose 可执行文件添加运行权限 sudo chmod +x /usr/local/bin/docker-compose # 输入下面命令查看帮助,测试安装是否成功 docker-compose -h Compose 开源在 Docker 官方的 GitHub 仓库:docker/compose,所有的 Compose 都会发布在仓库的 Releases 里,步骤1就是使用 curl 命令从 Releases 里下载可执行文件,uname -s和uname -m 可以读取系统的内核名称和硬件架构,用来匹配需要的 Compose 版本, curl 的 -L 参数会让 HTTP 请求跟随重定向(默认不跟随),-o (小写o) 会将服务器响应保存成文件,直接下载到:usr/local/bin/ 下,文件名为:docker-compose,因为这个路径已经在环境变量中了,所以完成步骤2,添加可执行权限后,就可以在任意位置使用了 ...

September 15, 2021

IDEA 配合 Dockerfile 部署 SpringBoot 工程

上一节:Dockerfile 实践及梳理 下一节:Docker Compose 实践及梳理 准备 SpringBoot 工程 新建 SpringBoot 项目,默认的端口是 8080 ,新建 Controller 和 Mapping @RestController public class HelloController { @GetMapping("hello") public String hello() { return "hello world!"; } } 注意,需要在 pom 中添加 spring-boot-maven-plugin 插件,否则运行 jar 包时会提示:没有主清单属性 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> 启动项目,访问 http://localhost:8080/hello 测试 在项目目录添加 Dockerfile 文件 FROM openjdk:8-jre # ./target/demo-0.0.1-SNAPSHOT.jar 为编译后的 jar 包位置 # jar 包的名称要与自己配置的相同,格式为:项目名称-版本号.jar COPY ./target/demo-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT ["java","-jar"] CMD ["app.jar"] Docker 远程连接配置 演示使用的 Docker 宿主机是 CentOS 7,修改配置并重启 Docker 服务 vim /lib/systemd/system/docker.service 将 ExecStar 这行配置修改为下面这行 ...

September 5, 2021

Dockerfile 实践及梳理

上一节:Docker 实践及命令梳理 下一节:IDEA 配合 Dockerfile 部署 SpringBoot 工程 Dockerfile 是一个文本文件,我们可以通过组合一条条的指令 (Instruction),来构建满足我们需求的 Docker 镜像 文档 Best practices for writing Dockerfiles Reference Dockerfile 指令详解 简单上手 使用 Dockerfile 构建SpringBoot 工程的镜像 新建 SpringBoot 项目,默认的端口是 8080 ,新建 Controller 和 Mapping @RestController public class HelloController { @GetMapping("hello") public String hello() { return "hello world!"; } } 启动项目,访问 http://localhost:8080/hello 测试 打 jar 包 注意,需要在 pom 中添加 spring-boot-maven-plugin 插件,否则运行 jar 包时会提示:没有主清单属性 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> #打包 mvn package target 目录下就可以找到 .jar 文件,我这里的文件名为:demo-0.0.1-SNAPSHOT.jar 在 Linux 新建 ~/springboot 文件夹,并将 jar 包上传到这个文件夹下 ...

September 1, 2021

Docker 实践及命令梳理

下一节:Dockerfile 实践及梳理 文档 Docker Reference Documentation Docker 从入门到实践 【中文】 安装 安装 Docker,设置开机启动,然后配置阿里云镜像加速 1. 安装 Docker Docker 官方安装 CentOS 官方安装教程,直接安装速度相对慢,推荐使用 使用脚本自动安装 Docker: curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyun # 开机启动 docker sudo systemctl enable docker # 启动 docker sudo systemctl start docker 2. 阿里云镜像加速 注意!registry-mirrors 需要替换成自己的 阿里云镜像加速器地址,通过点击地址获取 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["这里替换成自己的阿里云镜像加速器地址"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker Docker CLI CLI 是 Command-Line Interface (命令行界面)的缩写 命令详情可以参考官方文档:Docker Reference Documentation ...

August 11, 2021