docker tomcat镜像 docker镜像tag

2025-03-20 15:58 - 立有生活网

使用Docker部署GitLab

更新容器

查看是否拉取成功

docker tomcat镜像 docker镜像tagdocker tomcat镜像 docker镜像tag


docker tomcat镜像 docker镜像tag


docker tomcat镜像 docker镜像tag


若访问Gitlab出现502等错误,使用命令检查错误原因

编写内容

要注意端口是否被占用

修改 gitlab_start.sh 文件,将映射到宿主机的端口改为 8088 ,或者其它没被占用的端口

这是因为之前的容器虽然没有运行起来,但是已经创建了,把它删除掉

可以看到容器成功启动

创建 docker-come.yml 文件,并在该文件所在的文件夹目录下运行 docker-come up -d

需要事先安装 docker-come

安装docker-come

注 :端口和映射目录可根据需要修改

若开放访问端口为 80 , external_ 可不加端口号,默认80

若以 3.1 方法创建,需要修改相关配置文件

在Gitlab容器 运行状态 时,重启服务,并远程访问网站测试

e.g.

查看上述配置文件,查找错误原因

虽然容器启动成功,但是却没办法根据 ip:port 访问gitlab

拉取tomcat镜像

为了测试8088端口是否可用,先把gitlab的容器暂停

启动tomcat容器,并将tomcat容器的8080端口映射到宿主机的8088端口

一切正常,访问ip:8088,还是和以前一样访问不了

因为之前系统的防火墙一直是关闭的并且其它的服务能正常访问,所以没有怀疑是防火墙的问题

把防火墙打开

访问之前能正常访问的服务,果然没常访问。

把该服务的端口开发,正常访问。

打开8088端口

再次访问

返回tomcat的404页面: HTTP Status 404 – Not Found

虽然没启动成功,但离成功更进一步了:)

尝试把这个容器删除掉,再创建一次后还是得到这个错误。

还是访问不了,检查一下GitLab内部是否有问题

我再次换成tomcat容器进行测试,发现8088端口访问不了了。

但是在宿主机内ping本机是可以的

但是,换成 ip:8088 则不行

根据以上两篇文章,提出 阿里云的内网0 网段正好跟Docker 的虚拟网卡都是 172 网段,有冲突

观察发现我使用的云也是阿里云,并且通过 ifconfig 查看

并且查看阿里云的内网ip确实也是 172 开头。

重新启动docker服务

可以看到docker0 的地址变了。

但是要注意,使用 docker 启动的服务会默认使用 docker0 ,如果是用 docker-come 启动的服务则不会。上面的 br-12aa369ee4a6 对应的是docker-come启动的服务,可以看到还是172的网段。

docker-come up使用自定义的网段的两种方式(从其根源指定)

根据该文使用方法2,即修改 daemon.json 。但并不能成功访问,我的环境是: docker:20.10.7 , docker-come:1.24.1

后面尝试过关闭 firewalld ,打开 iptables 。

在启用 iptables 时,一般关掉 iptables 可以正常访问,打开则不能正常访重新运行 ./gitlab_start.sh 文件,报错如下问。

在启用 firewalld 时,按照 docker 和 firewalld 之间启动关闭的顺序不同,有时是开着防火墙能访问,有时是关了防火墙能访问。

问题 :怀疑是docker,firewalld与iptables之间的设置问题

Docker与IPtables

docker 端口映射 及外部无法访问问题

Docker and IPtables

还有一种访问不了GitLab的情况是端口映射和配置文件有误。

快速的解决方法:将宿主机端口号和容器号设置相同,可参考下面的博客。

利用GitLab Docker images安装GitLab(填坑)

[上传失败...(image-457ad3-1636370071221)]

如果系统环境正常,安装会十分顺利,一般不会有奇怪的问题。

我在不同的安装过

阿里云 CentOS 7.6 : 访问正常,但是因内存不够出现502错误,容器内可正常连接外部网络

阿里云 Alibaba Cloud Linux 2 : 可能不能正常访问容器,容器内不能正常连接外部网络。怀疑是防火墙与docker的问题。

修改密码:

SpringBoot+Docker项目打包(jar)和部署

Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、等。

一、打包SpringBoot项目

参数说明:brule:应用名称,根据自身项目名称修改,应用名称规范?(.?)image:刚才创建的docker镜像containerPort:容器启动端口,多个端口使用多行containerPort标签声明,端口限制在【30000-32000】

1.检查pom文件是否有men打包插件

2.选择IDEA右侧Men,点击install(如果配置了men的环境变量,则可以在控制台输入:mvn install 命令,同样可以打包jar包)

等待men打包,当控制台出现下列日志时表示打包成功

如下图所示,打包完会出现一个.jar文件,即打包好的jar包。

二、Docker部署jar包

前提条件:

1.构建Dockerfile

Mac 可在IDEA控制台输入vim Dockerfile 进入vim编辑,输入:

其中:

FROM 命令指定运行环境和版本

VOLUME:一个特别指定的目录,用于存储数据,该命令的作用是在/var/lib/docker创建一个名为tmp的目录,在开启redis服务时,需要特别指定redis的数据存储在哪个文件夹,此时这个命令就十分有用

ADD:拷贝文件并且重命名(需要输入两个参数:即jar包名称和重命名后的名称)

ENTRYPOINT:容器启动时运行的命令,相当于我们在命令行中输入ja -jar xxxx.jar,为了缩短 Tomcat 的启动时间,添加ja.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT

2.创建docker文件夹,将jar包与Dockerfile移动到该文件夹,进入该文件夹,运行命令:

此时会将该项目构建成一个image(镜像),运行命令:

3.运行镜像:

注:“:”左边的端口号是暴露给外部访问的端口,而右边端口是docker内部镜像运行的端口

4.打开浏览器访问部署的项目地址,检查项目是否运行正常

入门、快速搭建Docker分布式项目环境

1.什么是DockerDocker的开发环境

借用下网上传统虚拟机与Docker的对比。

而Docker容器仅包含应用程序和相关依赖项,在主机的作系统用户空间中作为一个进程运行,与其他容器共享内核,从而实现了虚拟机的资源隔离和分配,具有更高的可移植性和效率提高。

2.为什么使用Docker

1.更快速的交付和部署

开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接 使用这个容器来部署代码。

2.高效部署和扩容

3.更高的资源利用率

Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。

4.更简单的管理

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

3.Docker的工作原理和概念

自己制作镜像然后上传仓库或使用仓库已有的镜像文件拉取到容器中部署。

为了方便Docker的说明,本次例子使用虚拟机安装CentOS 7来演示。CentOS 7的安装请等查看下篇文章或自行百度。

按照顺序,执行如下作

1、安装必要的一些系统工具

2、添加软件源信息

3、更新并安装Docker-CE

安装准备工作

2.开启Docker服务

运行docker version 如果出现以下情况,说明当前用户没有 root相关作权限

无root权限

解决思路

先查看有多少镜像

运行docker run hello-world 测试命令,如果出现下方红框内消息,证明安装成功

3.查看docker基本信息和版本

1.构建Nginx基础在myapp目录使用命令docker-come up,将执行以下几步:镜像

查询nginx镜像

查看对外的访问路径

怎么才能访问刚才启用的nginx

nginx页面内容

我们可以进入容器,看下这个容器是什么样子

查看nginx在哪个位置

我们发现尽管启动了nginx,但是在外部还是不能访问,这是因为docker具有隔离机制,要不然怎么叫做容器化部署呢

Docker内ngi学习交流群: 646032nx端口

2.构建Tomcat基础镜像

打开容器后,默认安装目录在 /usr/local/

3.创建自己的专属镜像

用Dockerfile来制作镜像

创建一个新的镜像,并起名字为nywlw

查看新的镜像

运行自己创建的容器

4.删除容器实例

5.删除镜像

每天发布更多新鲜有含量的技术文章、总有一款适合你。

docker容器里怎么修改jdk版本

Docker只是容器

docker容器里修改jdk版本步骤如下:

在该文件目录下,授予 gitlab_start.sh 执行权限

1、在Dockerfile中添加如下指令以安装所需的JDK版本:FROMbase_imageRUNapt-getupdate&&apt-getinstall-yopenjdk-8-jdk

但是容器内不能访问外部网络,该问题现在还未解决。 有一种迂回的解决方法就是容器使用 host 网络模式

2、构建新的Docker镜像,执行命令dockerbuild-tnew_image_name.

3、运行新的Docker容器,执行命令:dockerrun-it--rmnew_image_name

大家都在怎么使用 docker

一切正常

在深入Docker和IDE细节之前,让我们看看,为什么得把Docker放进必需的开发工具列表中。

镜像拉取

构建系统

首先,Docker能够使我们的构建环境便携,可重复以及保持隔离。举个例子:你需要使用5.1版本的gcc工具构建一个C文件。 所有需要做的就是运行以下命令(当然,这里定你已经安装了Docker):

docker run gcc:5.1 gcc -o helloworld helloword.c

神奇的是,你可以在任何地方运行它,你不必理会依赖的库文件、之前的冲突或者gcc的安装。只要它能在你的笔记本上跑起来,也就可以在集成上运行了。

运行环境

同样适用于运行时环境。如果你只想在tomcat 8上运行Ja Web应用程序,可以只使用:

docker run tomcat:8 -v HelloWorld.war:/usr/local/tomcat/webapps/Helloworld.war

同样,你不用担心依赖性,平台配置或Linux发行版的异,这些Docker都能搞定。

Docker和IDE

好吧,这应该很清楚,为什么现在Docker对开发真的非常有用。就像我们描述的,你可以使用喜欢的shell来执行这些命令。 问题是,开发者都是懒惰的。这意味着,如果我们在最喜欢的IDE中码字,就不希望跑到IDE外面来使用Docker。我们想直接从IDE中运行容器。

不幸的是,现在主要IDE都不支持Docker。

所以,你是不是很想看到IDE中集成了Docker?

你想要在容器中运行IDE?

汗,这不是容器的使用方式。在容器里面运行图形化应用程序,太过复杂也缺少可移植性。

你想要从IDE中运行容器?

是哦!我们希望能看到对Dockerfile,Docker Come YML文件的支持,IDE构建系统和容器内的运行时环境。让我们来看看详细的需求:

Dockerfile的支持

Dockerfile支持应该带有语法高亮显示,自动补全(当按下Ctrl+SPACE键,dockerfile指令会自动弹出来)和语法验证(在执行 docker build 之前,IDE要能指出语法错误)

Docker Come YML文件的支持

IDE构建系统

当然,你需要得到IDE中运行容器的支持。具体地,容器可以构建你的源文件。如果利用Docker多种语言特性,这可能变得更容易。

编辑配置文件 /etc/docker/daemon.json ,若 daemon.json 文件不存在新建即可。IDE运行时环境

我们期待IDE的一项功能,能够启动容器的运行时环境。

doclipser

根据上述四个功能,我们构建了doclipser,一个Eclipse插件来编辑,构建和运行Docker容器。

doclipser支持Dockerfile:语法高亮显示,自动补全和语法验证。虽仍没有支持Docker Come YML文件,但已经可以执行一些Docker的命令,来构建源文件或启动运行时环境。

doclipser不是的Docker Eclipse插件。这里有一个很的Eclipse Docker工具集(以下简称:EDT),由JBoss维护且和Eclipse的Linux工具包一起分发。 即使它们都能使大家在IDE中使用Docker,doclipser和EDT还是两种不同的方法:

doclipser通过对Dockerfiles的支持,专注于编辑和运行容器,在未来的版本中,将提供对Docker Come YML文件的支持。

EDT对Docker镜像和容器拥有更高级的管理方式,但缺乏对Dockerfiles的支持。

domeide.github.io

如何使用Docker 进行Ja 开发

3、登录rancher管理平台,查看构建好的应用

在这个例子中需要增加三个文件:

现在有非常多的Ja Web框架,但我这里并不打算使用它们。我只想要的是一个小的框架所以我选择了Spark,它是一个基于Ja 8的极小的框架。Spark使用Men作为构建工具。

回到顶部

源代码docker run eclipse和配置文件

在这个例子中你要增加三个文件:

Men的配置文件: pom.xml

一个Ja类:Hello.ja

一个Dockerfile

如果有读者等不及了,可以克隆这个repo:

s://

Docker只是一个容器,和ja开发没什么关系。通常是把开发好的Ja程序放进Docker里运行

docker是容器jenkins启动用户需要添加到docker组中:环境。

你只能在docker的环境系统(linux)里开发ja。和你在windows,linux上开发一样。

我最近也在学习docker,docker就相当于虚拟机

Docker-come之外部容器连接

把tomcat的容器停止运行,重新运行gitlab容器

Docker-Cone为应用创建一个网络,Docker-Come为每个Serv创建一个容器,并加入到这个网络中,被网络中的其它容器访问和发现。此容器能够以容器名称作为hostname标识,被其它容器访问。

1、填写项目名称,选择"构建一个men项目"

在不使用Docker Come的时候,将两个容器链接起来使用 --link 参数,相对来说比较简单,以 nginx 镜像为例子:

这样 test2 与 test1 便建立了链接,就可以在 test2 中使用访问 test1 中的服务了,在docker-come更简单。

示例docker-come创建资源

docker-come.yml

使用docker-come up将停止并移除旧容器,重建新容器。

Links

默认情况下,Docker-Come下的Servcie之间是可通过服务名称(容器名称,也即hostname)相互访问的。

links只不过为Serv提供了以别名访问其它Serv的一种方式。

容器连接external_links

我们以 Docker-come一键部署zk集群+dubbo-admin 为例,将其拆开部署,如下:

zk.yml

启动zk容器 docker-come -f zk.yml up -d

tomcat.yml

启动tomcat容器 docker-come -f tomcat.yml up -d

注意,tomcat容器依赖于zk容器,所以要先启动zk容器。

接着我们使用ping来测试下连通性:

从上面得知,两个容器都能ping通1.安装之前的准备工作。

kubernetes与docker的关系是什么?

[上传失败...(image-e9789-1636370071222)]

合作关系,Docker作为单一的容器技术工具并不能很好地定义容器的“组织方式”和“管理规范”,难以地支撑起生产级大规模容器化部署的要求。因此容器技术的发展就迅速走向了以Kubernetes为代表的“容器编排”的技术路线.

传统虚拟化应用程序中,不仅包含应用程序和必要的二进制文件库,还包含一个完整的作系统。

Kubernetes的出现也重新定义了微服务架构的技术方向,“云原生”及“ServMesh(服务网格)”等概念,很大程度上也是依赖于Kubernetes所提供的基础能力。

扩展资料:

常用命令分享

拉取docker镜像

docker pull image_name

查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:

docker images

删除镜像

docker rmi

查看当前有哪些容器正在运行

docker ps

查看所有容器

docker ps -a

启动、停止、重启容器命令:

docker start container_name/container_iddocker stop container_name/container_iddocker restart container_name/container_id

后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:重新运行 gitlab_start.sh 文件

docker attach container_name/container_id

删除容器的命令:

docker rm container_name/container_id

查看当前系统Docker信息

docker

Jenkins+Rancher自动化部署

虽然是404页面,但是说明此时的端口是能正常访问的

本文主要记录Jenkins+Rancher+k8s自动化部署相关配置说明,不涉及rancher和jenkins安装部署,包含ja server项目、WAR项目、前端VUE项目部署配置介绍。

更有意思的是对Docker Come YML文件的支持。这将允许定义容器间的关系,如Link和Volume,也可以从你的编辑器一次启动多个容器。真的很酷!

环境信息:

需要在安装jenkins服务上部署下面相应的软件,请注意软件版本,如已经安装相关软件,可跳过此章节。

需要安装rancher-cli,并且使用jenkins用户预先登录rancher平台:命令参考:

--token:这个用户的token建议设置为过期,在rancher管理端 -> api&key > 添加。

建议安装阿里镜像,提高编译速度:

项目主要是ja和vue开发的,所以需要安装Men Integration plugin插件。

spring boot或者spring cloud自带容器,以及其它服务类型的ja后端应用部署。

点击下面"OK"按钮

2、填写项目描述信息

3、输入项目地址,并选择用户凭证

本文通过conding作为代码管理平台,点击"Add"添加自己账号凭证(输入coding平台登陆账号密码即可)。

4、配置men编译脚本

5、编写rancher部署脚本

Dockerfile参数说明:FROM:选择基础镜像包,该项目是用ja语言开发需要jdk1.8所以选择openjdk:8ADD:将bRule-deploy-1.0.0.tar.gz文件解压并上传到镜像的brule目录EXPOSE:容器内部启动2002端口,根据自身项目填写指定端口,多个端口填写多行EXPOSE标签ENTRYPOINT:容器启动时执行的命令,执行多条命令使用&&拼接,命令行中带&需要加上转移符&,使用tail -fn应用日志,以便容器日志查看。

用于创建docker镜像,就好比创建一个已经安装并且配置好了应用程序的作系统镜像。

参数说明:192.168.100.21:5000:为本地docker镜像地址brule:latest:应用名称,根据自身项目名称修改

利用上面创建好的作系统镜像启动一个vmware虚拟机,创建k8s容器。

前面vmware虚拟机创建好后,怎么能让别人访问?这个时候就需要创建一个网络服务,用于打通路由器与vmware本地虚拟机的网络。

参数说明:brule:应用名称,根据自身项目名称修改port:容器启动端口nodePort:对外提供服务端口,外部机器访问

将上面配置好的shell脚本到Post Steps -> 执行shell文本域中,并点击"保存" -> "立即构建"即可部署。

1、进入刚才创建好的jenkins任务,点击立即构建

2、点击左下角构建任务,选择"Console Output",查看构建日志

基于J2EE项目的war包部署,前面作都一致,只是shell部署脚本稍有不同,这里主要详细说明rancher部署脚本。

Dockerfile参数说明:FROM:选择基础镜像包,war统一使用tomcat容器部署,t任何连接到旧容器的(其它容器的)连接将关闭,然后检测条件,根据容器名称查找并重建连接。omcat:8.5-jre8-slimADD:将operation.war文件解压并上传到镜像的/usr/local/tomcat/webapps/目录EXPOSE:容器内部启动8080端口,根据自身项目填写指定端口,多个端口填写多行EXPOSE标签

这里不需要配置ENTRYPOINT标签,因为tomcat镜像包中已经有了。

用于创建docker镜像,就好比创建一个已经安装并且配置好了应用程序的作系统镜像。

参数说明:192.168.100.21:5000:为本地docker镜像地址operation:latest:应用名称,根据自身项目名称修改

利用上面创建好的作系统镜像启动一个vmware虚拟机,创建k8s容器。

前面vmware虚拟机创建好后,怎么能让别人访问?这个时候就需要创建一个网络服务,用于打通路由器与vmware本地虚拟机的网络。

参数说明:operation:应用名称,根据自身项目名称修改port:容器启动端口nodePort:对外提供服务端口,外部机器访问

将上面配置好的shell脚本到Post Steps -> 执行shell文本域中,并点击"保存" -> "立即构建"即可部署。

基于webpack构建的VUE项目部署,前面作都一致,只是shell部署脚本稍有不同,这里主要详细说明rancher部署脚本。

Dockerfile参数说明:FROM:选择基础镜像包,前端统一使用tomcat容器部署,tomcat:8.5-jre8-slimCOPY:将/dist目录上传到镜像的/usr/local/tomcat/webapps/fastquery/目录EXPOSE:容器内部启动8080端口,根据自身项目填写指定端口,多个端口填写多行EXPOSE标签

这里不需要配置ENTRYPOINT标签,因为tomcat镜像包中已经有了。

用于创建docker镜像,就好比创建一个已经安装并且配置好了应用程序的作系统镜像。

参数说明:192.168.100.21:5000:为本地docker镜像地址operation:latest:应用名称,根据自身项目名称修改

利用上面创建好的作系统镜像启动一个vmware虚拟机,创建k8s容器。

前面vmware虚拟机创建好后,怎么能让别人访问?这个时候就需要创建一个网络服务,用于打通路由器与vmware本地虚拟机的网络。

参数说明:shutcm-fastquery-web:应用名称,根据自身项目名称修改port:容器启动端口nodePort:对外提供服务端口,外部机器访问

将上面配置好的shell脚本到Post Steps -> 执行shell文本域中,并点击"保存" -> "立即构建"即可部署。

jdk升级17docker如何部署

参3.在控制台输入:ja -jar /Users/heyou/Desktop/springboot-0.0.1-SNAPSHOT.jar 来检查jar包是否可以正常运行。数说明:operation:应用名称,根据自身项目名称修改image:刚才创建的docker镜像containerPort:容器启动端口,多个端口使用多行containerPort标签声明,端口限制在【30000-32000】

利用Dockerfile构建一个简单的ja应用镜像,依赖环境比较简单,JDK,定制化的Tomcat(名为star-appserver) 1、环境准备 ubuntu:14.04 docker : 1.4 jdk:jdk-8u31-linux-x64.gz tom后面发现访问不成功的原因在于 docker 与防火墙之间的关系,可以关掉防火墙,开启 docker ,不能访问则打开防火墙。在它们之间来回试探 = =。cat : 7.0(star-appserver) 在/usr/local下创建目录:s.

docker 外网访问不了docker容器

在已经打包好的jar包的同级目录下新建Dockerfile

出现问题的原对Nginx进行外网端口映射;因有3种,

1:你安装docker的没有关闭防火墙,也就是说你访问你安装docker的物理机都访问不了,物理机里的docker就更访问不了了。

2:dodocker只是个容器而已,况且还是虚拟的。你可以开发好项目部署上去,不要用来开发。cker在创建镜像的时候没有做端口映射,这是就出现能访问物理机,但访问不了docker,你可以使用docker ps 查看镜像的端口映射情况。

3:端口映射不正确,如你docker中某一容器的8080端口映射到安装docker物理机的80端口,加入你在镜像里面安装了tomcat,但是你tomcat使用的是8080以外的任意端口,这是你访问物理机ip+80端口也无法访问。

电影结局前后对比视频 电影的结局视频

电影妈妈结局为什么是这样 9百万富翁的初恋 玄彬主演,两个小时候相识的人,在多年以后相遇,相爱,但女主角得了绝症。 85岁母亲(吴彦姝饰)和65岁女儿(奚美娟饰)共同生活。女儿背负着对···

高平户外旅游_高平户口可以在晋城上学吗

高平之华山自驾游路线图 2、高平炎帝陵 驾车路线:全程约389.3公里 高平户外旅游_高平户口可以在晋城上学吗 高平户外旅游_高平户口可以在晋城上学吗 尊敬的游客朋友们: 起点:高平市 1.晋城市···

太阁立志传5脱壳版 太阁立志传5脱壳版不能用

小爱今天给分享太阁立志传5脱壳版的知识,其中也会对太阁立志传5脱壳版不能用修改器进行解释,希望能解决你的问题,请看下面的文章阅读吧! 太阁立志传5脱壳版 太阁立志传5脱壳版不能用修···