一.什么是容器化(Containerisation):就是将应用程序和所需要的必要资源整合打包到一个名为容器的包中的过程称为容器化。
1.容器化主要解决的是程序运行的环境系统不支持或多个版本在同一机器中互相冲突的问题。
2.容器化平台利用的内核名为"命名空间(namespace)"的功能,实现进程可以充当系统资源无需与其他进程进行交互。
二.Docker
1.使用docker分布应用程序时,该应用程序会变为images,即一个镜像,镜像运行后会生成容器。
2.Docker是由YAML语言编写,具有可移植易调试的功能。
3.在Linux中可以使用ps aux查看运行的进程列表。
三.Docker的使用及安装。
1.docker pull nginx:22.04 #下载nginx22.04的镜像,若不加22.04默认安装最新版本。
2.docker image #列出可操作(管理)的本地系统镜像。
2.2docker image的可选择参数:
docker image ls #列出所有镜像;
docker image rm nginx:22.04 #删除nginx22.04的镜像
docker image build #创建镜像
3.docker run -it helloword /bin/bash #运行容器helloword
3.2参数解释:
-it:i以交互的方式,t以shell在容器中运行,合起来就是以shell的方式在容器中交互.
-d:让容器在后台运行 -v xx xxx:挂载,从xx挂载到XXX
-rm:删除 -p xxx:xx:将端口xxx绑定到容器xx中 --name:命名
4.docker ps #列出当前正在运行的容器,增加参数-a 可列出已关闭的容器。
四.dockerfile
1.定义:dockerfile是格式化文本文件,本质是docker做什么的说明手册。
2.参数:
from #所有都必须从这里开始
run #执行命令
copy #复制
workdir #设置为主目录
cmd #启动服务进程
expose #运行程序时使用的端口
3.示例1,创建一个容器。
FROM ubuntu:22.04 #创建一个系统版本ubuntu22.04
WORKDIR \ #设置当前为主目录
RUN touch helloword.txt #创建一个helloword文本
docker build helloword . #在当前目录下创建容器镜像,之后的步骤就可以依docker容器参数执行
3.2更新容器及安装软件
From ubuntu:22.04
run apt-get update -y #更新容器
run apt-get install apache2 -y #安装apache2
expose 80 #绑定端口80
CMD ["apache2ctl","-D","Foreground"] #在容器中运行apache2服务
五.Docker compose
1.定义:允许多个容器相互交互又互相隔离运行。
2.参数:
docker-compose up #创建并启动容器
docker-compose start #启动容器
docker-compose down #删除容器
docker-compose stop #停止容器
docker-compose build #创建容器但不启动
3.docker-compose。yml文件的格式。

六实战:以THM的Intro to Docker任务七为例。
第一步:启动机器。

第二步:看问题


首先第一个问题:容器的名称,简单docker ps 查看当前运行的容器。
第二个问题;先启动webserver的镜像,再去访问这个网站。
第三步:开始操作

得名称:cloudisland
NO2:
先访问网站是这个样子的。

然后查看docker的关闭服务,显示确实是关闭的。
现在启动webserver服务

之后再去访问网站。

得到答案。