提示:文章主要内容windows环境打包镜像,运行镜像,导出镜像,linux导入镜像
Docker Desktop是Docker的官方桌面版,专为Mac和Windows用户设计,提供了一个简单易用的界面来管理和运行Docker容器。它集成了Docker引擎,为开发人员提供了一个快速、可靠、可扩展的方式来构建、运行和管理应用。Docker Desktop的优势在于,它使得在不支持原生Linux容器的操作系统上(如Windows和Mac)安装和运行Docker变得非常简单。
需要注意的是,Windows 10 或 Windows 11 专业版或企业版支持运行 Windows 容器,但是 Windows 家庭版或教育版仅支持运行 Linux 容器。
一、windows环境打包docker镜像
1.下载dockerdesktop
下载地址如下Docker DeskTop安装包
根据所需版本,圈中的即为适用windows的。
2.安装
在 Windows 中安装 Docker Desktop 非常简单,下载合适版本的安装程序后,根据图形界面指引就可以轻松安装成功,安装成功后,在cmd指定docker -v,查看安装版本。
C:\Users\dell>docker -v
Docker version 24.0.5, build ced0996
注:安装成功后,登陆可采用github账号,且登陆及后续拉取镜像最好有代理
3.在ides安装docker插件
4.在idea中项目下创建Dockerfile文件(与项目最外层pom通目录)
5.dockerfile介绍
#FROM openjdk:11 基础镜像,基于jdk环境,若需要其他版本按需修改
FROM openjdk:11
#维护者信息
LABEL maintainer="lx@.com"
#对时作用
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#目录是终端默认在此目录下
WORKDIR /test
EXPOSE 8088
#如果是到文件夹后面必须加上“/”,不然会找不到文件,./代表当前目录即是/test目录,且jar包需写绝对路径,不然找不到
COPY /Jxhs-admin/target/Jxhs-admin.jar ./image/
#启动命令
CMD java -jar ./image/Jxhs-admin.jar
6.idea中配置链接docker服务
其中image tag字段若不填,打出来的镜像的tag会为none
选着docker for windows 会出现connection successful,表示链接本地dockerdesktop应用成功
7.构建镜像
1.idea构建镜像
看到如下图箭头4位置表示构建镜像成功(注意:有时候构建一直不成功,需要先停止docker连接服务,然后再启动),我构建过程中有因为docker file编写问题导致的问题,可以逐一排查
2.对jar包构建镜像
docker build -t encryptvispro .
注意:.代表执行dockerfile,也就是说执行此命令的地址需要有dockerfile,且dockerfile中要准确找到jar包位置,encryptvispro为镜像名称
二、启动镜像
1.打镜像后自动启动
因dockerfile中编写了命令,所以打包后会自动启动
注意事项:注意数据库和redis若原本为localhost或127.0.0.1需要改为当前ip,不然打包后启动不会成功
2.进入dockerdesktop中查看
在dockerdesktop应用选择images可以看到构建的镜像
启动镜像成为容器(1-启动,2-容器命名,3-是访问的端口,4-宿主机和容器挂载的路径可以有多个)
可以看到容器的全部信息,可以对容器终端命令操作和查看各种配置信息,启动,停止,删除容器等
三、windows导出镜像
在windows导出进行,在cmd通过docker images命令查看镜像
注意:通过镜像id导出新镜像的Tag和Respository可能为none
例如,使用镜像ID打包的话导致解压的出来的镜像没有名字
docker save -o redis.tar 7864316753
因此,推荐使用镜像的名字进行打包,例如:
docker save -o redis.tar redis:5.0.2
当REPOSITORY 和TAG为NONE时可以采用命令行对镜像重命名
docker tag [镜像id] [新镜像名称]:[新镜像标签]
导出镜像后就在cmd命令行中的位置。
C:\Users\dell>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
poi 1.0 9ae198d48a31 4 minutes ago 175MB
anapsix/alpine-java 8_server-jre_unlimited 49d744fbb526 4 years ago 126MB
C:\Users\dell>docker save -o poiOne.tar 9ae198d48a31
C:\Users\dell>docker save -o poiTwo.tar poi:1.0
C:\Users\dell>
四、导入镜像
下方的poi.tar即为导出镜像时的包
docker load -i poi.tar
五、linux上运行镜像
在linux上将镜像包导出为镜像后
1.查看镜像信息
docker images
镜像信息的名字和版本号可能为空,用上方的docker tag命令对镜像命名。
2.启动镜像
docker run -d --name visproenv1.0 -p 8083:8083 -v /data:/data visproenv:v1.0
这个命令是用于在 Docker 中运行一个名为 "blog:1.0" 的容器,并指定了一些参数配置。
解释一下每个参数的含义:
- -d: 后台模式(detached mode),容器将在后台运行。
- --name visproenv1.0: 为容器指定一个名称,此处为 "visproenv1.0"。
- -p 8083:8083: 将主机的端口 8083 映射到容器的端口 8083。这样,可以通过访问主机的 8083 端口来访问容器中运行的应用程序。
- -v /data:/data:,将主机的 /data 目录挂载到容器的 /data 目录。这样做可以实现主机和容器之间的文件共享,容器中对 /data的操作会反映到主机上。
visproenv:v1.0: 指定要基于的镜像名称及标签。
3.查看镜像日志
sudo docker logs -f --tail=200 vispro
查看容器的最后200条日志,vispro为容器名称,所以查看前需查看容器信息
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了打包docker镜像的方式