基于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 
相关推荐
2401_891957313 分钟前
简单了解多路转接select
运维·服务器
程序员-Benothing36 分钟前
Shell 脚本条件判断与流程控制:if for while case 详解
linux·运维·服务器
captain37638 分钟前
网络原理(3)-TCP核心机制连接管理▲▲▲
java·服务器·网络·ide·网络协议·tcp/ip·java-ee
君生我老1 小时前
Linux动静态库
linux·服务器
troy1281 小时前
Python 基础语法(一):变量、数据类型与运算符
java·服务器·python
IT摆渡者1 小时前
基于 Docker 部署 Nextcloud 私有云盘(外挂 Windows 共享)项目实践
运维·docker·容器
程序员清风2 小时前
记忆系统设计:让 Agent 拥有短期记忆与长期记忆
java·服务器·网络
做运维的阿瑞2 小时前
Linux下DNS服务器搭建
linux·运维·服务器
团子股股东峥哥2 小时前
day37-RHEL-管理基本存储
linux·运维·服务器
en.en..2 小时前
TCP/IP四层模型「数据包封装与拆包」| 网络传输
服务器·网络·php