1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过dockerfile安装mysql数据库并初始化,其间会穿插介绍一些常用的Docker命令。
2、Docker及Dockerfile简介什么是docker, docker是一个开源的应用容器引擎,基于go语言开发,遵循apache2.0协议开源 docker可以让开发者打包应用以及依赖包到一个容器中,然后可以发布到linux服务器。
该容器是轻量级、可移植的,它使用沙箱机制,相互之间没有接口,并且开销很低那么,什么是Dockerfile呢,Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了构建镜像所需的指令和说明3、部署
3.1、Docker的安装#安装环境:centos7#使用官方脚本自动安装curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun
3.2、Dockerfile编写3.2.1、Jar项目的Dockerfile编写#拉取一个jdk1.8版本的docker镜像FROM openjdk:8-jdk# 将项目jar包添加到容器ADD test.jar test.jar
# 将外部配置文件复制到容器COPY ./config /tmp/config# ENTRYPOINT 执行项目test.jar及外部配置文件ENTRYPOINT [“java”, “-jar”, “test.jar”,”–spring.config.location=/tmp/config/application.yaml”]
3.2.2、Mysql项目的Dockerfile编写#拉取一个mysql5.7版本的docker镜像FROM mysql:5.7#将初始化的sql文件复制到docker容器内/tmp/sqlCOPY ./sql /tmp/sql
#将tmp/sql中所有的sql文件复制到/docker-entrypoint-initdb.dRUN mv /tmp/sql/*.sql /docker-entrypoint-initdb.d#删除临时文件夹
RUN rm -rf /tmp/sql3.3、部署文件目录#目录及文件结构deploy–jar #jar包相关文件目录—-test.jar—-Dockerfile #上述jar对应的Dockerfile,注意名字的大小写
—-config #yaml配置文件目录——application.yaml #java项目的配置文件–mysql #mysql相关文件目录—-Dockerfile #上述mysql对应的Dockerfile,注意名字的大小写
—-sql——test.sql #数据库初始化sql,包括数据库创建,表创建,表数据初始化等3.4、部署#通过ftp上传上述包至centos指定目录中,例如上传到/usr/local/tools
cd /usr/local/tools#进入部署包目录cd deploy#先安装mysqlcd mysql#根据dockerfile构建docker镜像,其中 test_mysql 是镜像名docker build -t test_mysql .
#查看镜像,会发现多了test_mysql镜像docker images#运行mysql镜像 ,docker会执行初始化sql文件对mysql数据库进行初始化#其中MYSQL_ROOT_PASSWORD为mysql密码,可根据需要设置
#本文部署均使用docker容器的内网地址,所以不影射对外端口,#若需要隐射可以再命令加 -p 3306:3306,即把容器的3306隐射到本机的3306端口docker run -it -d -e MYSQL_ROOT_PASSWORD=123456 –name test_mysql test_mysql
#查看容器,docker ps查询正在运行的容器#若查询不到,则使用docker ps -a查询所有容器,并查看日志查找运行失败原因docker ps####至此,mysql容器已经启动可#安装jar包对应的容器
cd ../jar#进入config目录,配置yaml文件cd config#查询mysql容器的ipdocker inspect -f {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} 容器名或id
#修改mysql参数中的ip为mysql容器ip,对应spring.datasource.url#修改mysql参数中的密码为mysql容器启动时设置的密码,对应spring.datasource.password
vi application.yaml#根据dockerfile构建docker镜像,其中 test_java 是镜像名docker build -t test_java .#启动java项目,映射8080端口
docker run -it -d -p 8080:8080–name test_java test_java#查看容器,docker ps查询正在运行的容器#若查询不到,则使用docker ps -a查询所有容器,并查看日志查找运行失败原因
docker ps######至此, 可以通过centos对应的ip访问到java接口了#可以通过以下命令对容器进行操作docker start #启动容器docker stop #关闭容器。
docker exec -it /bin/bash #进入容器docker rm -f #删除容器,删除前需要先stop容器docker logs -f #查看容器日志
举报/反馈
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容