docker必用命令及构建一个可执行jar镜像

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013592964/article/details/81608658

1.使用镜像

既然你看到这篇文章,相信已经对docker有了初步的了解,这是一片docker快速使用的文章。其实docker跟maven似的,一个管理的是组织好的运行环境,一个是jar包。

1.1 下载镜像

docker pull hub.c.163.com/library/tomcat:latest

PS:这里使用了网易的docker镜像,下载速度

1.2 查看镜像

docker images

效果

$ docker images
REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
hub.c.163.com/library/tomcat        latest              72d2be374029        12 months ago       292MB

1.3 运行镜像

docker run -d -p 8888:8080 hub.c.163.com/library/tomcat

-d表示后台运行 -p表示端口映射 这个tomcat镜像默认端口是8080,前面的8888表示本季8888端口来映射到这个镜像的8080端口。

效果

因为用后台模式启动的-d ,所以会返回一个容器的id

可以在浏览器中输入
localhost:8888 查看tomcat起来了吗

注意: 每个容器环境都是独立,如果使用mysql这种有存储数据功能的镜像,一定在启动的时候使用 -v 宿主机目录/容器数据目录 指定数据目录和容器数据目录,让数据实时和宿主机同步,下次在启动时指定目录,才能把历史数据保存下来。

1.4 查看正在运行的容器

docker ps 

1.5 查看容器 运行环境
镜像启动后,我们肯定有查看日志的需求,可以使用下面的命令进入查看

docker exec -it (容器id) bash

1.6 关闭容器

通过ps可以获取到在运行的实例

docker stop (容器id,不用输入全部id,只输入能区别开不同容器的前面几位id就行)


docker stop $(docker ps -a -q)
关闭所有容器

1.7删除容器

docker rm (容器id)

1.8删除镜像

docker rmi (镜像名字)

2.构建镜像

掌握上面的命令就能轻松使用docker启动别人的镜像了。

但重要的是,我们需要构建自己的镜像,网上有很多构建基于tomcat的web应用,我这里以可执行jar包为例,构建一个java应用镜像。我这写了一个helloworld程序,并打成可执行jar

2.1准备镜像所需要的文件

hello.jar因为我这想展示更多命令,所以新建了一个文件夹
hello里面有一个bin文件夹,在里面放着hello.jar

如下图所示
这里写图片描述
2.2 编写dockerfile

from java:9

add  hello.tar.gz  /opt/
workdir /opt/hello/bin/
ENTRYPOINT ["java","-jar","hello.jar"]

下面解释dockerfile的语法,超级简单,就是key-value模式

2.2.1 from

from表示你的镜像是基于哪个镜像,如果是你是tomat web应用,from的值就是对应的tomcat的镜像名字:版本号

我们是java应用,就是基于Java:9

2.2.2 maintaine

镜像作者信息 可以省略

2.2.3 add/copy

制作镜像肯定需要外部文件
add和copy就能将dockerfie同级的文件复制系统的根目录 /下

add和copy的区别就是 add可以将压缩文件直接解压放到对应的目录下

2.2.4 run

run表示 构建根据我们的dockerfile构建 镜像执行的命令

但是一条run的作用范围只是这条命令,例如你切换到一个文件夹,后面的命令都是的目录并不会影响

2.2.5 workdir

切换命令 跟linux的cd 作用一样,使用该命令后 镜像的当前目录就进行了切换

2.2.6 entrypoint/cmd

启动镜像时,镜像内部会执行的命令,如果写了多条entrypoint/cmd只会最后一条生效。
推荐使用entrypoint的["",""] JSONArray模式

2.2.7 expose

暴露端口号命令,对于需要暴露端口号的镜像,使用该命令制定

2.3 构建镜像

docker build -t 镜像名字:版本号 .

最后最后有一个  .

写在最后:这是一篇快速上手应用docker的文章,并没有讲其相关概念,docker上手很快的,但跟详细的应用需要各位自己琢磨了。

展开阅读全文

没有更多推荐了,返回首页