基于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 
相关推荐
奋斗的蛋黄21 小时前
网络卡顿运维排查方案:从客户端到服务器的全链路处理
运维·服务器·网络
wanhengidc1 天前
云手机搬砖 尤弥尔传奇自动化操作
运维·服务器·arm开发·安全·智能手机·自动化
图图图图爱睡觉1 天前
主机跟虚拟机ip一直Ping不通,并且虚拟机使用ifconfig命令时,ens33没有ipv4地址,只有ipv6地址
服务器·网络·tcp/ip
deephub1 天前
FastMCP 入门:用 Python 快速搭建 MCP 服务器接入 LLM
服务器·人工智能·python·大语言模型·mcp
lhxcc_fly1 天前
Linux网络--8、NAT,代理,网络穿透
linux·服务器·网络·nat
wow_DG1 天前
【运维✨】云服务器公网 IP 迷雾:为什么本机看不到那个地址?
运维·服务器·tcp/ip
一个处女座的暖男程序猿1 天前
2G2核服务器安装ES
服务器·elasticsearch·jenkins
曹天骄1 天前
Let’s Encrypt 证书申请与多服务器 HTTPS 配置指南
运维·服务器·https
lang201509281 天前
如何在 Linux 中获取更多信息
linux·运维·服务器
我是标同学1 天前
vmware17安装ubuntu2204版本qemu运行armv8处理器uboot运行调试(包括windows)的一些工作
linux·运维·服务器