首页 > 其他分享 >容器平台

容器平台

时间:2024-05-07 19:35:47浏览次数:7  
标签:容器 平台 apache2 podman dlp ubuntu root

Podman

(01)Install Podman

Podman:安装


  安装容器管理工具的Podman。

[1]  安装 Podman。

root@dlp:~# apt -y install podman

 

[2]  下载官方镜像并创建一个容器,并在容器内输出 [Welcome to the Podman World] 字样。

# download the official image
root@dlp:~# podman pull ubuntu
# run echo inside a container
root@dlp:~# podman run ubuntu /bin/echo "Welcome to the Podman World"
Welcome to the Podman World
Resolved "ubuntu" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/ubuntu:latest...
Getting image source signatures
Copying blob 49b384cc7b4a done   |
Copying config bf3dc08bfe done   |
Writing manifest to image destination
bf3dc08bfed031182827888bb15977e316ad797ee2ccb63b4c7a57fdfe7eb31d

 

[3]  使用 [i] 和 [t] 选项连接到容器的交互式会话,如下所示。

  如果 [exit] 退出容器会话,则容器的过程完成。

root@dlp:~# podman run -it ubuntu /bin/bash
root@591e1ea31c34:/#     # connected
root@591e1ea31c34:/# uname -a
Linux 591e1ea31c34 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
root@591e1ea31c34:/# exit
exit
root@dlp:~#     # come back

 

[4]  如果要将容器作为守护进程运行,请添加 [d] 选项。

root@dlp:~# podman run -itd ubuntu /bin/bash
# show podman processes
root@dlp:~# podman ps
a45d9a04eb16c35c28bf2c223a41613a99c4eaddba7e619decbe27e851eb906b


CONTAINER ID  IMAGE                            COMMAND     CREATED         STATUS         PORTS       NAMES
a45d9a04eb16  docker.io/library/ubuntu:latest  /bin/bash   16 seconds ago  Up 16 seconds              angry_driscoll

# attach to container session
root@dlp:~# podman exec -it a45d9a04eb16 /bin/bash
root@a45d9a04eb16:/#     # connected
root@a45d9a04eb16:/# exit
# stop container process
# * if force stop, specify [podman kill ***]
root@dlp:~# podman stop a45d9a04eb16
root@dlp:~# podman ps
CONTAINER ID  IMAGE   COMMAND  CREATED  STATUS  PORTS   NAMES

 

(02)Add Container Images

Podman:添加容器镜像


  添加修改设置的新容器映像。

[1]  例如,使用安装 [apache2] 更新官方镜像,并将其添加为新的容器镜像。

# show container images
root@dlp:~# podman images
REPOSITORY                TAG         IMAGE ID      CREATED     SIZE
docker.io/library/ubuntu  latest      bf3dc08bfed0  5 days ago  78.7 MB

# run a container and install [apache2]
root@dlp:~# podman run ubuntu /bin/bash -c "apt-get update; apt-get -y install apache2"
root@dlp:~# podman ps -a | tail -1
# add the image that [apache2] was installed
root@dlp:~# podman commit 8ba738311a1b srv.world/ubuntu-apache2
# show container images
root@dlp:~# podman images
# confirm [apache2] to run a container
root@dlp:~# podman run srv.world/ubuntu-apache2 /usr/bin/whereis apache2
apache2: /usr/sbin/apache2 /usr/lib/apache2 /etc/apache2 /usr/share/apache2
8ba738311a1b  docker.io/library/ubuntu:latest  /bin/bash -c apt-...  26 seconds ago  Exited (0) 8 seconds ago              intelligent_haibt

Getting image source signatures
Copying blob 80098e3d304c skipped: already exists
Copying blob 8b942a48c2d6 done   |
Copying config 38d5083368 done   |
Writing manifest to image destination
38d5083368637cec96e051ebe22f2b5776538eb9ad7dc2143f4d617896ec05f4

REPOSITORY                TAG         IMAGE ID      CREATED         SIZE
srv.world/ubuntu-apache2  latest      38d508336863  26 seconds ago  226 MB
docker.io/library/ubuntu  latest      bf3dc08bfed0  5 days ago      78.7 MB

 

(03)容器服务接入

Podman:访问容器上的服务


  如果要访问在容器上作为守护程序运行的 HTTP 或 SSH 等服务,请按如下方式进行配置。

[1]  例如,使用已安装 [apache2] 的容器。

root@dlp:~# podman images
# run a container and also start [apache2]
# map with [-p xxx:xxx] to [(Host Port):(Container Port)]
root@dlp:~# podman run -dt -p 8081:80 --security-opt apparmor=unconfined srv.world/ubuntu-apache2 /usr/sbin/apachectl -D FOREGROUND
root@dlp:~# podman ps
REPOSITORY                TAG         IMAGE ID      CREATED             SIZE
srv.world/ubuntu-apache2  latest      38d508336863  About a minute ago  226 MB
docker.io/library/ubuntu  latest      bf3dc08bfed0  5 days ago          78.7 MB

77c61575ad7b23c0091e0744cf691d8fb28484bd52a3be00280456e64309b191


CONTAINER ID  IMAGE                            COMMAND               CREATED         STATUS         PORTS                 NAMES
77c61575ad7b  srv.world/ubuntu-apache2:latest  /usr/sbin/apachec...  14 seconds ago  Up 14 seconds  0.0.0.0:8081->80/tcp  affectionate_mirzakhani

# create a test page
root@dlp:~# podman exec 77c61575ad7b /bin/bash -c 'echo "Apache2 on Podman Container" > /var/www/html/index.html'
# verify accesses
root@dlp:~# curl localhost:8081
Apache2 on Podman Container
# also possible to access via container network
root@dlp:~# podman inspect -l | grep \"IPAddress
root@dlp:~# curl 10.88.0.7
Apache2 on Podman Container
            "IPAddress": "10.88.0.7",
                    "IPAddress": "10.88.0.7",

 

(04)使用Dockerfile

Podman:使用Dockerfile


  使用Dockerfile并自动创建容器映像。

  它对容器映像的配置管理也很有用。

[1]  例如,创建一个已安装并启动 Nginx 的 Dockerfile。

root@dlp:~# vi Dockerfile
# create new
FROM ubuntu
MAINTAINER ServerWorld <[email protected]>

RUN apt-get update
RUN apt-get -y install nginx
RUN echo "Dockerfile Test on Nginx" > /var/www/html/index.html

EXPOSE 80
CMD ["/usr/sbin/nginx", "-g", "daemon off;"]

# build image ⇒ podman build -t [image name]:[tag] .
root@dlp:~# podman build -t srv.world/ubuntu-nginx:latest .
root@dlp:~# podman images
# run container
root@dlp:~# podman run -d -p 80:80 --security-opt apparmor=unconfined srv.world/ubuntu-nginx
root@dlp:~# podman ps
STEP 1/7: FROM ubuntu
STEP 2/7: MAINTAINER ServerWorld <[email protected]>
--> f2fc42956ea5
STEP 3/7: RUN apt-get update

.....
.....

STEP 6/7: EXPOSE 80
--> 79117f75b19a
STEP 7/7: CMD ["/usr/sbin/nginx", "-g", "daemon off;"]
COMMIT srv.world/ubuntu-nginx:latest
--> 1b1a4d3f4f26
Successfully tagged srv.world/ubuntu-nginx:latest
1b1a4d3f4f26fdac6a7556c81a8cee65bfdbaaeff204ccc700f16b91d83e8dec

REPOSITORY                TAG         IMAGE ID      CREATED             SIZE
srv.world/ubuntu-nginx    latest      1b1a4d3f4f26  About a minute ago  125 MB
srv.world/ubuntu-apache2  latest      38d508336863  37 minutes ago      226 MB
docker.io/library/ubuntu  latest      bf3dc08bfed0  5 days ago          78.7 MB

1628817a1fa315f96be582e324daf4fad31bc51f1ef015be6dd3f2d2750fb5fd


CONTAINER ID  IMAGE                          COMMAND               CREATED         STATUS         PORTS               NAMES
1628817a1fa3  srv.world/ubuntu-nginx:latest  /usr/sbin/nginx -...  18 seconds ago  Up 18 seconds  0.0.0.0:80->80/tcp  intelligent_chatterjee

# verify accesses
root@dlp:~# curl localhost
Dockerfile Test on Nginx
# also possible to access via container network
root@dlp:~# podman inspect -l | grep \"IPAddress
root@dlp:~# curl 10.88.0.2
Dockerfile Test on Nginx
            "IPAddress": "10.88.0.2",
                    "IPAddress": "10.88.0.2",

 

Dockerfile 的格式为 [INSTRUCTION arguments] 。

有关指令,请参阅以下说明。

指令 描述
FROM 它为后续指令设置基础映像。
MAINTAINER 它设置生成图像的“作者”字段。
RUN 它将在创建 Docker 映像时执行任何命令。
CMD 它将在执行 Docker 容器时执行任何命令。
ENTRYPOINT 它将在执行 Docker 容器时执行任何命令。
LABEL 它将元数据添加到图像中。
EXPOSE 它通知 Docker 容器将在运行时侦听指定的网络端口。
ENV 它设置环境变量。
ADD 它复制新文件、目录或远程文件 URL。
COPY 它复制新文件或目录。
[ADD]的区别在于无法指定远程URL,也不会自动提取存档文件。
VOLUME 它创建一个具有指定名称的挂载点,并将其标记为持有 从本机主机或其他容器外部挂载的卷。
USER 它设置用户名或 UID。
WORKDIR 它设置工作目录。

 

(05)使用外部存储

(06)使用外部存储(NFS)

(07)使用注册表

(08)Podman网络基础

(09)使用Docker CLI

(10)使用Docker Compose

(11)创建Pod

(12)普通用户使用

(13)生成Systemd单元文件

(14)容器资源使用情况

 

标签:容器,平台,apache2,podman,dlp,ubuntu,root
From: https://www.cnblogs.com/nc086/p/18176668

相关文章

  • 接入大量设备后,视频汇聚系统EasyCVR安防监控视频融合平台是如何实现负载均衡的?
    一、负载均衡随着技术的不断进步和监控需求的日益增长,企业视频监控系统的规模也在不断扩大,接入大量监控设备已成为一项常态化的挑战。为确保企业能够有效应对这一挑战,视频汇聚系统EasyCVR视频融合平台凭借其卓越的高并发处理能力,为企业视频监控管理系统提供了持续可靠的负载均衡......
  • java容器化项目改造
    dockerjava项目容器化改造前后端分离项目前端https://gitee.com/yuco/eladmin-web.git后端https://gitee.com/yuco/eladmin.git要素:vuenpmspringbootmysqlredisjava后端容器化思路:了解在物理机虚拟机的部署流程,然后编写dockerfile进行容器化部署。java项目,使用mv......
  • Docker网络:Docker0、容器互联技术--link、自定义网络、实战部署Redis集群
    一、Docker网络●--理解Docker0在干净的Linux环境上安装docker(将docker的所有镜像、容器先删除,干干净净!)实验:1、查看本地网络信息ipaddr可见有三个网卡信息:lo:本地(回环)地址;ens:虚拟机或云服务器(内网)地址;docker0:docker网络地址。问题:docker是如何处理容器网络访问......
  • 营销权益平台春晚技术探究| 京东云技术团队
    一、引言在当前快速发展的互联网环境中,许多企业和服务都面临着高并发场景的挑战。随着用户规模不断增长,对于同一时间内大量用户请求的处理能力、系统性能、稳定性和容错性的要求也日益提高。高并发场景对系统架构设计、数据库设计、缓存策略、自动化运维、安全防护、成本、效率......
  • 远光九天平台入选2024全国企业数字化应用创新典型案例
    4月25日至29日,由科技部、国家发展改革委、工业和信息化部、国务院国资委、中国科学院、中国工程院、中国科协、北京市人民政府共同主办的2024中关村论坛在北京召开。远光软件受邀出席2024中关村论坛平行论坛之一——全球数字化应用创新论坛,其倾力打造的远光九天智能一体化云平台(简......
  • OpenStack-容器手册(全)
    OpenStack容器手册(全)原文:zh.annas-archive.org/md5/D8A2C6F8428362E7663D33F30363BDEB译者:飞龙协议:CCBY-NC-SA4.0前言容器是近年来最受关注的技术之一。随着它们改变了我们开发、部署和运行软件应用程序的方式,它们变得越来越受欢迎。OpenStack因被全球许多组织使用而获......
  • 「云渲染平台」3D模型渲染是CPU还是GPU?
    在数字艺术创作和工程设计这两个领域中,将三维模型转换成逼真的二维图像的过程被称为模型渲染,这是一种对计算资源要求极高的技术活动。在渲染三维模型时,CPU和GPU各自承担着不同的任务。现在,让我们来了解在模型渲染的过程中,主要是消耗CPU资源还是GPU资源。一、模型渲染对CPU和GPU......
  • 忘记zabbix监控平台Admin用户密码:Incorrect user name or password or account is tem
    如下图(实在想不起密码不要紧我们直接重新设置它):1.登入zabbix数据库[root@SJYS-Test1~]#mysql-uroot-pEnterpassword:WelcometotheMariaDBmonitor.Commandsendwith;or\g.2.进入zabbix库,查询users用户表MariaDB[(none)]>usezabbix;MariaDB[zabbix]>select......
  • 开源电子邮件营销平台 listmonk 使用教程
    做产品肯定要做电子邮件营销,特别是面向海外的产品,电子邮件营销已成为企业与客户沟通、建立品牌忠诚度和推动销售的重要工具,可以直接接触到目标受众,提供个性化内容,并以相对较低的成本获得可观的投资回报。你看,MEAP又来提醒我买电子书了!做电子邮件营销首先需要考虑的是选哪个电子......
  • 在Linux中,Docker和容器虚拟概念是什么?
    Docker是一种开源的容器化平台,它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中,然后在任何支持Docker的系统上运行。容器虚拟化是一种与完全虚拟化(如KVM或Xen)不同的虚拟化技术,它提供了操作系统级别的虚拟化。1.容器虚拟化概念容器是一种轻量级、可移植的软件单元......