声明!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
容器与云
现在的基础设施很多都是云化了,不像以前,我们搭建一个应用要去先买服务器,租赁机房,安装上架,拧螺丝,网线。
现在没那么麻烦了,大部分都是云,直接去什么阿里云,腾讯云,这种云服务器的厂家,买点云服务器,几分钟就能够申请下来,基于它可以去做各种各样的一个应用部署。虚拟化中每个VM需要运行自己的操作系统,
显着增加了总体开销,容器化是一种更加现代的架构,容器共享内核与硬件,更快、更小、更高效,容器远没有虚拟化强大,因此容器是对虚拟化的补充,而非取代。容器的系统开销更小(可忽略),因此可以进一
步分离应用组件,例如搜索、登录、查询、订单功能分开,容器使用映像作为模板生成。映像相当于计算机硬盘,容器使用不同发行版文件加载内核,运行容器
实验环境ubuntu22.04
在Ubuntu上生成centos7容器
在Ubuntu上生成CentOS 7容器,你可以使用Docker这个流行的容器化工具。以下是生成CentOS 7容器的步骤和示例代码:
- 确保你已经安装了Docker。如果没有安装,可以使用以下命令安装:
sudo apt-get update
sudo apt-get install docker.io
- 拉取CentOS 7的官方Docker镜像:
sudo docker pull centos:7
在执行上一条命令之前,在这里要进行换源
vim /etc/docker/daemon.json
{"registry-mirrors" :
[
"https://hub.littlediary.cn",
"https://hub.xdark.top",
"https://docker.kejilion.pro",
"https://registry.dockermirror.com",
"https://hub.rat.dev",
"https://dhub.kubesre.xyz",
"https://docker.nastool.de",
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://docker.rainbond.cc"
]
}
换源之后运行命令,重启docker
systemctl restart docker
- 运行一个基于CentOS 7镜像的容器:
sudo docker run -it --name my_centos7 centos:7 /bin/bash
在这个命令中:
-it 选项允许你交互式地运行容器。
–name my_centos7 给容器命名为my_centos7。
执行上述命令后,你会进入到一个新的CentOS 7容器中,可以在这个环境中执行CentOS 7系统的命令。
centos:7 指定使用的镜像。
/bin/bash启动容器后执行的命令,这里启动了bash让你能与容器交互。 容器与云
创建Apache容器后台运行
docker container run -d --rm -p 8080:80 httpd
curl localhost:8080
存在回显,有具体标签,表示搭建成功
常用命令
查看所有容器
docker container ls
登陆后台运行的容器
docker exec -it 54b8dc001425 /bin/bash
停止容器
dochker container stop 54b8dc001425
挂载宿主机目录
docker container run -d --rm -p 8080:80 -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd
侦听宿主机80端口
docker container run -d --rm --network host -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd
查看docker 后台进程
列出所有正在运行的容器
docker ps
查看特定容器的进程信息
docker top <container_name_or_id>
PODMAN
Podman 是个Docker的替代产品 无守护进程
如果没有podman那么先进行安装
apt install podman
编辑podman的源文件
/etc/containers/registries.conf
添加下面代码
[registries.search]
registries = ['5tqw56kt.mirror.aliyuncs.com',
"docker.hpcloud.cloud",
"docker.m.daocloud.io",
"docker.1panel.live",
"mirrors.ustc.edu.cn",
"docker.chenby.cn",
"docker.ckyl.me",
"mirror.azure.cn",
"hub.rat.dev"
]
运行容器 (不加sudo启动报错,默认禁止侦听1024以下端口)
sudo podman run -d --rm --network host httpd
pod是共享名称的多个容器的集合
创建名为wha的空pod (加入两个容器,访问容器1)
podman pod create --name wha
podman run -d --pod wha httpd
podman run -pod wha -it alpine/curl /bin/asho
curl localhost
大部分容器化过程都采用开放容器计划(OCI) 标准
因此Podman和Docker可互操作