Docker (Dockerfile运行jar) -day 05

一、上传jar到指定目录

1-创建文件夹
[root@iZuf6hxabqikytnrumsi4gZ /]# mkdir mydocker
[root@iZuf6hxabqikytnrumsi4gZ /]# ls

2-上传jar包
[root@iZuf6hxabqikytnrumsi4gZ mydocker]# ls
docker_boot-0.0.1-SNAPSHOT.jar

二、编写Dockerfile

1-vim 编写Dockerfile
[root@iZuf6hxabqikytnrumsi4gZ mydocker]# vim Dockerfile

2-查看Dockerfile
[root@iZuf6hxabqikytnrumsi4gZ mydocker]# cat Dockerfile 
#基础镜像使用java
FROM java:8
# 作者
MAINTAINER syf
# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名
ADD docker_boot-0.0.1-SNAPSHOT.jar dockertest.jar
# 运行jar包
RUN bash -c 'touch /dockertest.jar'
ENTRYPOINT ["java","-jar","/dockertest.jar"]
#暴露8090端口作为微服务
EXPOSE 6001

三、构建镜像

在当前目录下构建镜像

docker build -t dockertest:1.0 .

 构建结果:
 

1-查看到dockertest镜像
[root@iZuf6hxabqikytnrumsi4gZ mydocker]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
dockertest    1.0       6630cddf3ac3   2 minutes ago   760MB
centosjava8   1.0       b66e5037b732   5 days ago      1.27GB
redis         6.2.6     7614ae9453d1   24 months ago   113MB
mysql         5.7       c20987f18b13   24 months ago   448MB
centos        7         eeb6ee3f44bd   2 years ago     204MB

 四、运行容器

docker run -d --name=dockertest -p 6001:6001 镜像ID

 实际运行步骤如下:

1-上传jar到如下目录
[root@syf mydocker]# ls
docker_boot-0.0.1-SNAPSHOT.jar  Dockerfile


2-在本目录下,构建镜像
[root@syf mydocker]# docker build -t dockertest:1.0 .
[+] Building 17.7s (8/8) FINISHED                                                                                                                                                                  docker:default
 => [internal] load build definition from Dockerfile                                                                                                                                                         0.0s
 => => transferring dockerfile: 471B                                                                                                                                                                         0.0s
 => [internal] load .dockerignore                                                                                                                                                                            0.0s
 => => transferring context: 2B                                                                                                                                                                              0.0s
 => [internal] load metadata for docker.io/library/java:8                                                                                                                                                   15.2s
 => [internal] load build context                                                                                                                                                                            0.4s
 => => transferring context: 58.23MB                                                                                                                                                                         0.4s
 => CACHED [1/3] FROM docker.io/library/java:8@sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d                                                                                       0.0s
 => [2/3] ADD docker_boot-0.0.1-SNAPSHOT.jar dockertest.jar                                                                                                                                                  1.1s
 => [3/3] RUN bash -c 'touch /dockertest.jar'                                                                                                                                                                0.3s
 => exporting to image                                                                                                                                                                                       0.6s
 => => exporting layers                                                                                                                                                                                      0.6s
 => => writing image sha256:ae9b75acc22422d1b2dd2b14070c6dd79f03e3caa145f70813532a888d8fd4c8                                                                                                                 0.0s
 => => naming to docker.io/library/dockertest:1.0  

3-在8089端口,运行镜像
[root@syf mydocker]# docker run -d --name=dockertest -p 6001:6001 ae9b75acc224
c06bd1088b383466beec95e1d0af76c9794d1fe1981a7ca4308cec281fec019a

4-查看容器 dockertest 
[root@syf mydocker]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS          PORTS                                                  NAMES
c06bd1088b38   ae9b75acc224   "java -jar /dockerte…"   4 seconds ago   Up 3 seconds    0.0.0.0:6001->6001/tcp, :::8090->8090/tcp              dockertest
a34aff536643   redis:6.2.6    "docker-entrypoint.s…"   2 weeks ago     Up 23 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp              redis6.2.6
2a384f369e0b   mysql:5.7 

最后访问你的项目地址,验证运行成功 

四、查看日志

docker logs --tail  300 -f  dockertest

比如:查看倒数25行报错

1-查看命令
[root@syf mydocker]# docker logs dockertest|tail -n 25
java.sql.SQLException: Access denied for user 'root'@'192.168.1' (using password: YES)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3978) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3914) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1714) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1224) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2199) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2230) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2025) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:778) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at sun.reflect.GeneratedConstructorAccessor57.newInstance(Unknown Source) ~[na:na]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_111]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_111]
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330) ~[mysql-connector-java-5.1.47.jar!/:5.1.47]
	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156) ~[druid-1.1.16.jar!/:1.1.16]
	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218) ~[druid-1.1.16.jar!/:1.1.16]
	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.1.16.jar!/:1.1.16]
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1598) ~[druid-1.1.16.jar!/:1.1.16]
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1662) ~[druid-1.1.16.jar!/:1.1.16]
	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2601) ~[druid-1.1.16.jar!/:1.1.16]

[root@syf mydocker]# 

也可以测试项目:swagger 是否集成成功、

192.168.1.1:6001/swagger-ui.html

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值