基于Java8构建Docke镜像

基于Java8构建Docke镜像

  1. 搜索java8安装包 docker search java8 --no-trunc --no-trunc展开描述信息

  2. 选择拉取 docker pull docker.io/mykro/java8-jre,为了减少磁盘占用,选择jre版本基础镜像

  3. 在宿主机创建文件夹iot,并把所需jar包拷贝到当前目录,并创建Dockerfile文件,目录结构如下

  4. 编写Dockerfile文件

shell 复制代码
# 基础镜像
FROM docker.io/mykro/java8-jre
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 创建并设置工作目录
WORKDIR /app
# 拷贝文件夹
COPY ./lib /app/lib
# 拷贝jar包 
COPY device-iot-mqtt.jar /app/device-iot-mqtt.jar

#开放端口
EXPOSE 18888
# 入口
ENTRYPOINT ["java", "-jar", "/app/device-iot-mqtt.jar"]
  1. 进入到当前文件夹目录,然后使用docker build命令构建镜像
shell 复制代码
docker build -t device-iot-mqtt.jar .

-t :是给镜像起名,格式依然是repository:tag的格式,不指定tag时,默认为latest;
. :是指定Dockerfile所在目录,如果就在当前目录,则指定为".";

  1. 此时再用docker images命令可查看构建出来的镜像

  2. 使用docker run创建容器并运行

shell 复制代码
# docker run -d --name 容器名 -p 18888:18888 镜像名
docker run -d --name device-iot-mqtt -p 18888:18888device-iot-mqtt
  1. docker logs -f [容器名称] 在控制台打印日志

Docker常用命令

shell 复制代码
#info|version
docker info       #显示docker的系统信息,包括镜像和容器的数量
docker version    #显示docker的版本信息。
#帮助命令
docker 命令 --help #帮助命令
#镜像命令
docker images #查看所有本地主机上的镜像 可以使用docker image ls代替
docker search #搜索镜像
docker pull #下载镜像 docker image pull
docker rmi #删除镜像 docker image rm
#容器命令
docker run 镜像id #新建容器并启动
docker ps 列出所有运行的容器 docker container list
docker rm 容器id #删除指定容器
	#删除所有容器
	docker rm -f $(docker ps -aq)  	 #删除所有的容器
	docker ps -a -q|xargs docker rm  #删除所有的容器
#启动和停止容器
docker start 容器id	#启动容器
docker restart 容器id	#重启容器
docker stop 容器id	#停止当前正在运行的容器
docker kill 容器id	#强制停止当前容器
#退出容器
exit 		#容器直接退出
ctrl +P +Q  #容器不停止退出 	---注意:这个很有用的操作
#其他常用命令
docker run -d 镜像名  #后台启动命令
docker logs 		#查看日志
docker top 容器id 	#查看容器中进程信息ps
docker inspect 容器id  #查看镜像的元数据
docker exec 		#进入当前容器后开启一个新的终端,可以在里面操作。(常用)
docker attach 		# 进入容器正在执行的终端
docker cp 容器id:容器内路径  主机目的路径	#从容器内拷贝到主机上

# 查询容器信息
docker container COMMAND 
相关推荐
全镇人的希望20 分钟前
[特殊字符] 企业级Docker私有仓库实战:3步搭建Harbor安全仓库,镜像管理从此高效无忧
docker·运维开发·私有化
昊昊该干饭了21 分钟前
玩转代理 IP :实战爬虫案例
运维·服务器·爬虫·网络协议·tcp/ip·网络爬虫
菌菌巧乐兹31 分钟前
电脑知识 | TCP通俗易懂详解 <一>
服务器·网络·tcp/ip
危险、38 分钟前
AWS服务器 磁盘空间升级到100G后,怎么使其生效?
服务器·云计算·aws
darkchink1 小时前
[LevelDB]Block系统内幕解析-元数据块(Meta Block)&元数据索引块(MetaIndex Block)&索引块(Index Block)
android·java·服务器·c语言·数据库·c++·分布式
无名之逆1 小时前
[特殊字符] 超轻高性能的 Rust HTTP 服务器 —— Hyperlane [特殊字符][特殊字符]
java·服务器·开发语言·前端·网络·http·rust
穷儒公羊2 小时前
第一部分——Docker篇 第三章 构建自定义镜像
java·运维·后端·学习·docker·云原生·容器
淋一遍下雨天2 小时前
第七章总结:集合
运维·服务器·windows
稳联技术2 小时前
玻璃厂退火炉“温度智囊”:Profinet转ModbusRTU网关
运维·服务器·网络
weixin_428498492 小时前
Docker 容器内运行程序的性能开销
docker·容器