Docker部署(1)——将jar包打成docker镜像并启动容器

这篇具有很好参考价值的文章主要介绍了Docker部署(1)——将jar包打成docker镜像并启动容器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        在代码编写完成即将部署的时候,如果采用docker容器的方法,需要将jar包打成docker镜像并通过镜像将容器启动起来。具体的步骤如下。

一、首先下载java镜像

        先使用docker search java命令进行搜索。

Docker部署(1)——将jar包打成docker镜像并启动容器

         然而在拉取镜像的时候要注意不能直接去选择pull java ,不然会出现manifest for java:latest not found: manifest unknown: manifest unknown 的报错。

Docker部署(1)——将jar包打成docker镜像并启动容器

 正确的做法是:在search的时候指明好版本,然后在进行pull操作。

docker search jdk8
Docker部署(1)——将jar包打成docker镜像并启动容器

         然而在pull的时候,发现还是超时了,出现这种情况一般是没有配好镜像源或者配置的镜像源失效了。

Docker部署(1)——将jar包打成docker镜像并启动容器         我打开镜像源进行查看,并且对镜像源进行ping的操作,然而发现前面两个镜像都能 ping通,但后面尝试继续去pull 镜像,发现仍然失败,最后我只保留了自己配置的阿里云镜像,发现可以正常pull 成功。(这里我其实也没有弄的很明白,原来配置了三个镜像源地址反而pull不成功,而且前面两个地址可以ping通,但是发现这几个网站单独并不能打开)

Docker部署(1)——将jar包打成docker镜像并启动容器

改成一个镜像后再search 和 pull 好了

Docker部署(1)——将jar包打成docker镜像并启动容器

Docker部署(1)——将jar包打成docker镜像并启动容器

 二、新建一个工作目录,将jar包拷贝进去

Docker部署(1)——将jar包打成docker镜像并启动容器

 三、新建一个Dockerfile文件

Docker部署(1)——将jar包打成docker镜像并启动容器

文件内容如下:

FROM dockette/jdk8
WORKDIR /test
COPY  jx-system-0.0.1-SNAPSHOT.jar   /test/jx-system-0.0.1-SNAPSHOT.jar
CMD ["java","-jar","jx-system-0.0.1-SNAPSHOT.jar","-Dfile.encoding=utf-8"]

Docker部署(1)——将jar包打成docker镜像并启动容器

代码解释

  • FROM dockette/jdk8 ——表示基于dockette/jdk8镜像构建
  • WORKDIR /test ——表示指定容器内的工作目录为/test
  • COPY ——拷贝jx-system-0.0.1-SNAPSHOT.jar到容器工作目录/test
  • CMD ——执行java启动jar的指令。

 四、构建镜像并启动容器

docker build -t app-docker .

        表示从当前目录构建镜像,这条命令会把当前目录下文件全部打包发送到docker引擎服务端,然后在服务端根据Dockerfile进行构建操作。其中的-t 是 Docker 命令 docker build 的一个选项,用于指定生成的镜像的名称和标签,格式为 name:tag。在命令行中,-t 选项后面可以紧接着将生成的镜像命名为一个字符串。

例如,docker build -t remdocker . 命令中的 -t remdocker 意思是将生成的镜像命名为 remdocker.  表示指定当前目录作为 Dockerfile 文件的构建上下文。

通常情况下,生成的镜像名称包含命名空间(Namespace)的名称,以便在 Docker Hub 上进行管理和分享,例如 username/repo:tag。不过如果没有 Docker Hub 账号,也可以不指定命名空间,只用标准格式 name:tag

Docker部署(1)——将jar包打成docker镜像并启动容器

        而命令 docker run -it --network my-net  -p 20233:20233 --name appd -d app-docker 表示把容器启动起来。根据刚才的Dockerfile配置,容器生成后,必然会在容器根目录下生成test目录,并且test目录下存在app.jar文件,容器执行CMD定义的指令也是基于test目录的。

docker run -it --network my-net  -p 20233:20233 --name appd -d app-docker

具体的命令的含义如下:

  • docker run:启动一个Docker容器。
  • -it:将Docker容器的输入绑定到当前终端,以便可以进行交互式操作。
  • --network my-net:将Docker容器连入名为my-net的网络中。这个网络需要先通过docker network create命令创建。
  • -p 20233:20233:将Docker容器的20233端口映射到主机的20233端口。这样,可以通过主机的20233端口访问Docker容器。
  • --name appd:给Docker容器命名为appd。
  • -d app-docker:以名为app-docker的镜像为基础启动Docker容器并将其放入后台运行。

综上所述,这条命令启动了一个交互式的Docker容器,并将其放入已经创建的名为my-net的网络中,在主机的20233端口与Docker容器的20233端口建立了映射,给Docker容器命名为appd,以名为app-docker的镜像为基础启动并将其放入后台运行。

【此处还要注意:-p(小写p)和-P(大写P)选项在Docker命令行中有不同的含义。

-p host_port:container_port(小写p)选项用于将主机端口映射到Docker容器端口,例如:

docker run -p 8080:80 nginx

        此命令将host的8080端口映射到Docker容器中的80端口,因此可以通过 http://localhost:8080 访问NGINX欢迎页面。而-P(大写P)选项用于将Docker容器的所有暴露的端口映射到主机上随机端口。例如:

docker run -P nginx

        是将nginx容器的所有暴露的端口映射到主机上的随机端口,您可以通过 docker container port <container_name> 命令来查看每个映射的端口。总之,小写p用于将主机端口映射到Docker容器端口,而大写P用于将所有暴露的端口映射到主机上随机端口。】

完成之后可进入容器内部查看文章来源地址https://www.toymoban.com/news/detail-500592.html

docker exec -it app /bin/bash

到了这里,关于Docker部署(1)——将jar包打成docker镜像并启动容器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用docker-file 将springboot项目打成镜像,发布成容器服务

    [root@localhost ~]# uname -r 3.10.0-862.el7.x86_64 [root@localhost ~]# yum install docker [root@localhost export]# systemctl start docker [root@localhost export]# docker -v Docker version 1.13.1, build 7d71120/1.13.1 [root@localhost export]# systemctl status docker ● docker.service - Docker Application Container Engine    Loaded: loaded (/usr/lib/systemd

    2024年02月13日
    浏览(35)
  • docker centos容器里,安装python3环境,且安装java8环境。并打成基础镜像

    一、 1、运行命令,即自动下载centos对应的镜像,但此时镜像是关闭状态: docker run centos:7.4 2、docker images 查看上述命令对应的 镜像 3、docker run -it centos:7.4 /bin/bash 之后退出 exit docker ps -a 之后, docker start imageid 启动对应的关闭状态的镜像 。 4、docker exec -it imageid /bin/bash 进入镜

    2023年04月09日
    浏览(31)
  • windows部署python项目(以Flask为例)到docker,通过脚本一键生成dockerfile并构建镜像启动容器

    这里使用 pipreqs 进行依赖库的识别。使用 pipreqs 可以自动检索到当前项目下的所有组件及其版本,并生成 requirements.txt 文件。相比直接用pip freeze 命令,避免将整个python环境的依赖包写入。 在项目的当前目录中执行 pipreqs ./ --encoding=utf8 --force 这里使用的是一个基于flask项目,

    2023年04月08日
    浏览(37)
  • Docker构建jar包镜像并运行容器

    Docker需要提前安装,不懂的参考: Centos7操作Docker_JohnGene的博客-CSDN博客_centos7 操作docker 安装Docker安装Docker官方源:yum-config-manager –add-repo http://download.docker.com/linux/centos/docker-ce.repo更新源:yum makecache fast安装:yum install docker-ce启动并设为开机自启:systemctl enable docker #设为开机

    2024年02月09日
    浏览(52)
  • K8S部署后的使用:dashboard启动、使用+docker镜像拉取、容器部署(ubuntu环境+gpu3080+3主机+部署深度学习模型)

    0、k8s安装、docker安装 参考:前两步Ubuntu云原生环境安装,docker+k8s+kubeedge(亲测好用)_爱吃关东煮的博客-CSDN博客_ubantu部署kubeedge  配置节点gpu: K8S调用GPU资源配置指南_思影影思的博客-CSDN博客_k8s 使用gpu 1、重置和清除旧工程:每个节点主机都要运行 2、部署新的k8s项目:

    2023年04月20日
    浏览(44)
  • 使用docker 生成镜像,并启动容器。

    指令详情: 指令 解析 FROM 指定基础镜像,必须为第一个命令 MAINTAINER 维护者邮箱等信息 RUN 构建镜像docker build时执行的命令 ADD 将本地文件添加到容器中,tar 类型文件会自动解压 COPY 功能类似ADD,但是是不会自动解压文件,也不能访问网络资源 CMD 在docker run时会执行的命令,

    2024年02月16日
    浏览(32)
  • docker下载mongodb镜像并启动容器

    1、查找mongodb相关镜像 找到相关的镜像进行拉取,如果不指定版本,默认下载最新的mongoDB。建议自己先查找需要那个版本后在进行拉取,因为mongoDB不同版本之间差距较大。 2、拉取镜像 这里拉取mongodb6.0 拉取成功后,查看docker镜像 3、本地创建容器卷文件夹 首先在本地创建文

    2024年02月11日
    浏览(36)
  • 部署运行jar包方法全解docker镜像打包部署等

    有一种叫做“nohup”的命令,该命令可以让您的应用程序在后台运行,即使您已经断开了与终端的连接也能保持运行状态。 nohup 命令的语法为:  其中,command 是要运行的应用程序的命令,arg1、arg2…argN 则是该命令的参数。 符号表示在后台运行该命令。当运行 nohup 命令时,

    2024年02月10日
    浏览(44)
  • docker 构建指定版本的jdk容器,并用docker部署jar包

    有在Linux系统安装docker的经验, 会使用docker常用命令,能明白构建docker容器参数的含义 将如下内容拷贝 到 Dockerfile ,保存并退出。 我用的jdk安装包是 jdk-8u361-linux-aarch64.tar.gz ,你只需要修改它换成你的jdk安装包 用 docker build 完 jdk镜像 后,用命令 docker inspect 容器id | grep Arc

    2024年02月09日
    浏览(33)
  • IDEA整合Docker,一键打包服务镜像与启动容器

    尝试了IDEA整合Docker,坑有些多,但经过查阅资料都一一解决了,写了个案例,感觉这种方式确实要方便很多。下面来整理下步骤: 一、安装Docker 准备一台Linux,我这里用的是centos 7 mini 版,然后安装Docker 安装Device Mapper: 配置Docker的yum源: 更新yum缓存 安装Docker-ce 等待上述加

    2024年02月02日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包