东营网站建设,网站解析时候让做别名,做动画在线观看网站,广州网站建设天维说明#xff1a;平常我们使用Docker运行各种容器#xff0c;极大地方便了我们对开发应用的使用#xff0c;如MySQL、Redis#xff0c;以及各种中间件#xff0c;使用时只要拉镜像#xff0c;运行容器即可。本文介绍如何创建一个Demo#xff0c;自定义构建一个镜像。
开…说明平常我们使用Docker运行各种容器极大地方便了我们对开发应用的使用如MySQL、Redis以及各种中间件使用时只要拉镜像运行容器即可。本文介绍如何创建一个Demo自定义构建一个镜像。
开始之前需要在自己的服务器或者虚拟机内安装Git、Maven、JDK和Docker可参考下面这两篇文章 Docker安装卸载 在云服务器上安装Jenkins前提部分
创建项目
首先在GitLab上创建一个仓库里面写一个Demo代码如下
Controller
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;RestController
RequestMapping(/docker)
public class DockerFileController {GetMappingpublic String getDockerFile() {return Hello Dockerfile!;}
}启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}Application.yml
server:port: 8080pom.xml
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.hezy/groupIdartifactIddocker_file_demo/artifactIdversion1.0-SNAPSHOT/versionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.12/versionrelativePath//parentpropertiesmaven.compiler.source11/maven.compiler.sourcemaven.compiler.target11/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project启动测试没得问题 编写Dockerfile文件
将代码push到远程仓库登录服务器用git将代码克隆到服务器里 进入项目的根目录编写Dockerfile文件。Dockerfile文件就是需要自定义镜像的脚本文件文件内包含了一个个指令说明了构建该镜像所需的环境及操作。相关指令如下 FROM指定基础镜像即代码运行的环境 ENV设置变量可在下面执行CMD命令时使用如设置JAVA的环境 COPY拷贝文件 RUN执行Linux的shell命令 EXPOSE指定容器运行的端口如上面的项目则需要指定为8080即程序运行的端口 ENTRYPOINT运行程序的CMD命令如java -jar jar包
如前面的Demo项目Dockerfile文件内容如下
# 使用官方 OpenJDK 11 镜像作为基础镜像
FROM openjdk:11# 将应用程序 JAR 文件复制到容器中
COPY ./target/docker_demo-1.0-SNAPSHOT.jar /home/docker_demo.jar# 指定容器启动时运行的命令
CMD [java, -jar, /home/docker_demo.jar]注意文件名必须是Dockerfile 构建容器
在当前目录敲下面的命令将项目打包
mvn clean package如果你想确认一下jar包有没问题可以像我一下进入target目录手动启动下看报不报错 继续敲下面的命令构建镜像制定镜像名-t为docker-demo注意后面有个点.
docker build -t docker-demo .首次构建需要下载openjdk可能有点慢如下是我首次构建时的信息花了5分钟左右 启动容器
这时敲下面的命令可以查看是否新增了一个镜像
docker images或者
docker image ls然后敲下面的命令使用这个镜像启动一个容器
docker run --name docker-demo -p 8080:8080 -d docker-demo–name指定容器名 –p指定映射的端口外部访问云服务器8080端口就是访问这个容器内的8080端口即项目运行的端口 这时打开浏览器输入服务器公网IP:8080/docker敲回车。成功访问没得问题。 总结
本文介绍了如何构建Docker自定义镜像