Dockerfile构建镜像

1 创建JDK1.8镜像

步骤:
(1)创建目录
mkdir -p /usr/local/dockerjdk8

(2)下载jdk-8u171-linux-x64.tar.gz并上传到服务器(虚拟机)中的/usr/local/dockerjdk8目录

(3)在/usr/local/dockerjdk8目录创建文件Dockerfile,建议通过xftp传过来

#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER ADMIN
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH
$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

(4)执行命令构建镜像
docker build -t='jdk1.8' .
注意后边的空格和点,不要省略

(5)查看镜像是否建立完成
docker images
(6)创建容器
docker run -di --name=jdk1.8 jdk1.8

2 Docker私有仓库
2.1 私有仓库搭建与配置
(1)拉取私有仓库镜像(此步省略)
docker pull registry
(2)启动私有仓库容器
docker run -di --name=registry ‐p 5000:5000 registry
(3)打开浏览器 输入地址http://192.168.136.130:5000/v2/_catalog看
到 {"repositories":[]} 表示私有仓库搭建成功并且内容为空
(4)修改daemon.json
vi /etc/docker/daemon.json
添加以下内容,保存退出。

{"insecure‐registries":["192.168.184.135:5000"]} 

此步用于让 docker信任私有仓库地址
(5)重启docker 服务
systemctl restart docker

2.3 使用DockerMaven插件镜像上传至私有仓库 

Maven插件自动部署步骤:
(1)修改宿主机的docker配置,让其可以远程访问
vi /lib/systemd/system/docker.service
其中ExecStart=后添加配置 ‐H tcp://0.0.0.0:2375 ‐H unix:///var/run/docker.sock
修改后如下:

(2)刷新配置,重启服务
systemctl daemon-reload
systemctl restart docker 

(3)在tensquare_config工程pom.xml 增加配置 (已制作tensquare_config镜像为例)

 <build>
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- docker的maven插件,官网:https://github.com/spotify/docker‐maven‐plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                <configuration>
                    <imageName>192.168.136.130:5000/${project.artifactId}:${project.version}</imageName>
                    <baseImage>jdk1.8</baseImage>
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}
                            </directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <dockerHost>http://192.168.136.130:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

192.168.136.130是我的虚拟机的ip地址,5000端口是registry的,2375是宿主机向外暴露的

(4) 在terminal窗口的G:\Projects\tensquare_parent\tensquare_config的这个路径,进行自动打包和上传到私有仓库

命令:mvn clean package docker:build -DpushImage

浏览器访问 http://192.168.136.130:5000/v2/_catalog ,输出
{"repositories":["tensquare_config"]}
(6)进入宿主机 , 查看镜像
docker images

输出如上内容,表示tensquare_config微服务已经做成镜像

(7) 启动容器:docker run -d --name=tensquare_config -p 12000:12000 192.168.136.130:5000/tensquare_config:0.0.1-SNAPSHOT

  • 挂载日志
docker run -dit --name jl-boot -p 8090:8090 -v /data/java/logs:/data/java/logs --restart=always 106.54.238.192:5000/jl-boot:0.0.1-SNAPSHOT

 

logging:
  file: /data/java/logs/jl-boot.log
  level:
    root: info
    org.springframework.web: info
    cn.jl666.jlboot: debug

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值