进入tomcat容器内部的命令

进入tomcat容器内部的命令,第1张

进入tomcat容器内部的命令是dockerrun。容器指的是实现了一定功能的组件,可以管理其他组件的生命周期。一个容器可能管理其他容器,也可能被其他容器管理。容器通常会形成一个层级关系。Tomcat是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目。

流体布局对应的容器类名有container、row、col-xx-yy。具体如下:

1、container:容器类名,用于包裹整个网页内容,通常设置宽度为百分比或最大宽度为固定值。

2、row:行类名,用于包裹一行中的列元素,通常设置为100%宽度。

3、col-xx-yy:列类名,用于设置列元素的宽度,其中xx表示设备的屏幕尺寸(如xs、sm、md、lg等),yy表示列元素所占的宽度百分比。

您好,Swift容器的基本命令有:

1 swift list:用于查看存储桶中的对象列表;

2 swift stat:用于查看存储桶的元数据;

3 swift upload:用于上传对象到存储桶;

4 swift download:用于从存储桶中下载对象;

5 swift delete:用于从存储桶中删除对象;

6 swift post:用于更新存储桶的元数据;

7 swift get:用于获取存储桶的元数据;

8 swift copy:用于将对象从一个存储桶复制到另一个存储桶;

9 swift tempurl:用于创建一个临时URL,用于访问存储桶中的对象;

10 swift stat container:用于查看容器的元数据。

1启动一个Docker容器

[root@localhost ~]# docker run -i -t Ubuntu /bin/bash

Unable to find image ‘ubuntu’ locally

Pulling repository ubuntu

04c5d3b7b065: Download complete

511136ea3c5a: Download complete

c7b7c6419568: Download complete

70c8faa62a44: Download complete

d735006ad9c1: Download complete

Status: Downloaded newer image for ubuntu:latest

注:

-i:打开容器中的STDIN

-t:为容器分配一个伪tty终端

从上面我们可以看出,首先Docker会检查本地是否存在ubuntu镜像,如果在本地没有找到该镜像的话,那么Docker就会去官方的

Docker Hub Registry查看Docker

Hub中是否有该镜像。Docker一旦找到该镜像,就会下载该镜像并将其保存到本地的宿主机中。

然后,Docker在文件系统内部用这个镜像创建了一个新的容器。该容器拥有自己的网络、IP地址,以及一个用来可以和宿主机进行通信的桥接网络接口。最后,我们告诉Docker在新容器中要运行什么命令。

当容器创建完毕之后,Docker就会执行容器中的/bin/bash命令。这时间我们就可以看到容器内的shell

root@8c342c0c275c:/#

注:8c342c0c275c代表容器的ID

2使用容器

查看该容器的主机名

root@8c342c0c275c:/# hostname

8c342c0c275c

可以看到,容器的主机名就是该容器的ID

查看该主机的hosts文件

root@8c342c0c275c:/# cat /etc/hosts

1721702 8c342c0c275c

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

127001 localhost

::1 localhost ip6-localhost ip6-loopback

fe00::0 ip6-localnet

可以看到Docker为该容器的IP地址添加了一条主机配置项。

查看该容器的IP地址

root@8c342c0c275c:/# ip a

1: lo: 《LOOPBACK,UP,LOWER_UP》 mtu 65536 qdisc noqueue state UNKNOWN group default

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127001/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

4: eth0: 《BROADCAST,UP,LOWER_UP》 mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff

inet 1721702/16 scope global eth0

valid_lft forever preferred_lft forever

inet6 fe80::42:acff:fe11:2/64 scope link

valid_lft forever preferred_lft forever

查看容器中运行的进程

root@8c342c0c275c:/# ps -aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 00 01 18168 1976 ? Ss 09:38 0:00 /bin/bash

root 19 00 00 15568 1144 ? R+ 09:55 0:00 ps -aux

在容器中安装一个软件包

root@8c342c0c275c:/# apt-get update && apt-get install vim

Ign >

  一个pod是一组紧密相关的容器,是一起运行在同一个工作节点上,以及同一个Linux命名空间中。每个pod就像是一个独立的逻辑机器,拥有自己的IP、主机名、进程等,运行一个独立的应用程序。

  pod是逻辑主机,一个pod的所有容器都运行在同一个逻辑机器上,其他pod中的容器,即使运行在同一个工作节点上,也会出现在不同的节点上。即一个pod包含多个容器时,这些容器总是运行在同一个工作节点上,一个pod绝不可能跨多个工作节点。

举例

  每个pod自有IP,包含1个或多个容器,每个容器运行一个应用进程

查看pod命令

$ kubectl get pods

READY:0/1 表示pod的单个容器显示为未就绪的状态;相反,1/1表示已就绪;

STATUS: Pending 表示pod处于挂起状态;相反,Running表示pod处于运行状态;

  运行应用两大步骤:1)构建镜像并推送至镜像仓库中;2)K8s创建pod进行调度;

流程:

1)本地构建镜像;

2)推送镜像至镜像仓库;

3)kubectl创建并部署应用;

4)kubectl发出REST请求至REST API服务器;

5)创建pod并调度到工作节点;

6)kubelet收到通知;

7)kubelet告知Docker运行镜像;

8)Docker从镜像仓库中拉取镜像;

9)Docker创建并运行容器;

  如果单个容器中运行多个不相关的进程,保持所有进程运行、管理它们的日志将很难,需要包含一种在进程崩溃时能够自动重启的机制,同事,这些进程都将记录到相同的标准输出中,很难确定每个进程分别记录的内容。

  不能讲多个进程聚集在一个单独的容器中,需要pod将容器绑定在一起,并将它们作为一个单元进行管理,在包含容器的pod下,可以同时运行一些密切现骨干的进程,并为其提供相同的环境,此时这些进程就好像全部运行于单独的容器中,同时保持一定的隔离性。

  k8s可以通过配置docker让一个pod内的所有容器共享相同的Linux命名空间(network、UTS命名空间、IPC命名空间),从而使容器都共享相同的主机名、网络名和IPC通信。

  同一个pod中的容器运行的多个进程不能绑定到相同的端口号,否则会端口冲突(每个pod都有独立的端口空间,不同pod中的容器不会有端口冲突现象。)

  同一个pod中的容器具有相同的loopback网络接口,所以容器可以通过localhost与同一个pod中的其他容器进行通信。

注意

  容器不应该包含多个进程,pod也不应该包含多个并不需要运行在同一主机上的容器。如下图:

1)yaml中使用的kubernetes API版本和yaml描述的资源类型;

2)metadata:包括名称、命名空间、标签和关于该容器的其他信息;

3)spec:包含pod内容的实际说明,如pod的容器、卷和其他数据;

4)status:包含运行中的pod的当前信息,如pod所处的条件、每个容器的描述和状态,以及内部IP和其他基本信息。

描述信息:

1)该文件遵循Kubernetes API的v1版本;

2)描述的资源类型是pod;

3)资源名称为kubia-manual;

4)该pod由基于luksa/kubia镜像的单个容器组成;

5)容器名称为kubia;

6)容器监听的端口是8080;

按名称删除

$ kubectl delete po pod_name

其中, pod_name 为pod名称;删除命令指示uk8s终止该pod中所有容器,k8s向进程发送一个SIGTERM信号并等待一定的秒数(默认30s),使得其正常关闭,若未及时关闭,则通过SIGKILL终止进程。

删除多个pod

$ kubectl delete po pod_name1 pod_name2

多个pod删除使用空格隔开;

按照标签删除

$ kubectl depete po -l tag_key=tag_value

其中, tag_key 为标签健, tag_value 为标签值;

按照整个命名空间删除

$ kubectl delete ns namespace_name

其中, namespace_name 为命名空间名称

以上就是关于进入tomcat容器内部的命令全部的内容,包括:进入tomcat容器内部的命令、流体布局对应的容器类名、swift容器的基本命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9596054.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存