基于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 
相关推荐
江团1io010 小时前
深入解析TCP核心机制:连接管理、流量与拥塞控制
服务器·网络·tcp/ip
知白守黑26711 小时前
Ansible角色
运维·服务器·ansible
慕容晓开16 小时前
docker,本地目录挂载
docker
小小菜鸡ing16 小时前
pymysql
java·服务器·数据库
Mr. Cao code17 小时前
Docker:颠覆传统虚拟化的轻量级革命
linux·运维·ubuntu·docker·容器
Dontla17 小时前
Docker多共享网络配置策略(Docker多网络、Docker networks、Docker Compose网络、Docker网络、Docker共享网络)
网络·docker·容器
Jayin_chan18 小时前
paddlex3.0.1-ocr服务化安装部署(docker)
docker·容器·ocr
ifanatic18 小时前
[每周一更]-(第159期):Go 工程师视角:容器化技术(Docker/Kubernetes)与CI/CD流程的应用场景
docker·golang·kubernetes
当归102419 小时前
SQL Server死锁排查实战指南
java·服务器·网络
qinyia19 小时前
用 Wisdom SSH 轻松实现服务器自动化任务调度
服务器·自动化·ssh