关于docker及容器的了解学习记录

一.什么是容器化(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服务

之后再去访问网站。

得到答案。

相关推荐
❀͜͡傀儡师8 分钟前
Kubernetes (K8s) 部署资源的完整配置OceanBase
容器·kubernetes·oceanbase
无敌糖果12 分钟前
K8S的Pod之initC容器restartPolicy新特性
云原生·容器·kubernetes·pod·restartpolicy·容器重启
77qqqiqi2 小时前
解决忘记修改配置密码而无法连接nacos的问题
java·数据库·docker·微服务
小一亿2 小时前
【0基础PS】Photoshop (PS) 理论知识
学习·平面·adobe·信息可视化·photoshop
慕y2743 小时前
Java学习第九十一部分——OkHttp
java·开发语言·学习
LiuYaoheng4 小时前
【Android】使用 Intent 传递对象的两种序列化方式
android·java·笔记·学习
九章数学体系4 小时前
九章数学体系:打破“吃苦悖论”,重构学习真谛
数据结构·学习·算法·数学建模·拓扑学
东风微鸣5 小时前
GitOps:云原生时代的革命性基础设施管理范式
docker·云原生·kubernetes·可观察性
David爱编程5 小时前
Kubernetes NetworkPolicy 实践与策略误区
云原生·容器·kubernetes
饮浊酒6 小时前
初始C语言---第四讲(数组)
c语言·学习