docker容器基础

一,容器优点

●灵活:即使是最复杂的应用也可以集装箱化。

●轻量级:容器利用并共享主机内核。

●可互换:可以即时部署更新和升级。

●便携式:可以在本地构建,部署到云,并在任何地方运行。

●可扩展:可以增加并自动分发容器副本。

●可堆叠:可以垂直和即时堆叠服务。

二,namespace的六项隔离

namespace 系统调用参数 隔离内容

UTS CLONE_NEWUTS 主机名与域名

IPC CLONE_NEWWIPC 信号量、消息队列和共享内存

PID CLONE_NEWPID 进程编号 重点

NETWORK CLONE_NEWNET 网络设备、网络栈、端口等 重点

MOUNT CLONE_NEWNS 挂载点(文件系统)

USER CLONE_NEWUSER 用户和用户组(3.8以后的内核才支持〉

三,docker核心概念

●镜像 image

Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向 Docker 容器引擎的只读模板。

通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。

Docker镜像也是一个压缩包,只是这个压缩包不只是可执行文件,环境部署脚本,它还包含了完整的操作系统。因为大部分的镜像都是基于某个操作系统来构建,所以很轻松的就可以构建本地和远端一样的环境,这也是Docker镜像的精髓。

●容器 container

Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,以保证平台的安全性。

可以把容器看做是一个简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。

●仓库 repoistory

Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public)或者私有仓库(Private)。当下次要在另外一台机器上使用这个镜像时,只需从仓库获取。

Docker 的镜像、容器、日志等内容全部都默认存储在 /var/lib/docker

四,安装docker安装

复制代码
systemctl stop firewalld.service
setenforce 0


#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 

#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

#安装 Docker-CE并设置为开机自动启动
yum install -y docker-ce docker-ce-cli containerd.io
docker-ce-20.10.18

systemctl start docker.service
systemctl enable docker.service 

安装好的Docker系统有两个程序,Docker服务端和Docker客户端。其中Docker服务端是一个服务进程,负责管理所有容器。 Docker客户端则扮演着Docker服务端的远程控制器,可以用来控制Docker的服务端进程。大部分情况下Docker服务端和客户端运行在一台机器上。

五,docker操作

复制代码
镜像加速下载:
访问https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors获得镜像加速

docker version  查看docker版本信息
docker pull 下载/拉取镜像
docker search 搜索镜像
docker images 查看镜像
docker tag  原仓库名/原镜像名:原标签  新原仓库名/新原镜像名:新原标签   创建镜像标签
docker push 登录公共仓库:标签  用户名  密码      上传镜像到共有仓库/私有仓库
docker rmi  删除镜像
docker save -o  导出镜像
docker login  登录仓库   -u 仓库用户名 -p 密码
docker inspect 容器/镜像id  查看详细信息
docker rm 删除容器
docker cp  复制  本地机器目录的文件拷贝到容器中
docker create 创建容器
docekr start 启动容器
docker exec -if 切换到容器内部
docker stop 关闭容器
docker run 创建并启动容器
dokcer ps -a 显示所有容器
docker load  导入容器
docker info  显示信息
docker export  导出容器实例为镜像
docker import 导入镜像
docker kill  强制关闭容器
相关推荐
AKAMAI2 小时前
随着瓦尔·基尔默的AI分身诞生,生成式AI是否正在将好莱坞推向边缘?
人工智能·云原生·云计算
探索云原生2 小时前
一个 Deployment 就能跑 vLLM,为什么还需要 KServe?
docker·ai·云原生·kubernetes·go
分布式存储与RustFS6 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun6 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
张洛闻Eren6 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
Thomas.Sir6 天前
第21课:PyTorch|GPU多卡训练与分布式训练基础【让多卡并行成为你的加速引擎】
人工智能·pytorch·分布式
Cicada1286 天前
库存消息消费的正确性设计——从幂等窗口到批量流水线
分布式·系统架构
不吃香菜kkk、6 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ChaITSimpleLove6 天前
云原生性能对决:JDK21虚拟线程+GraalVM vs .NET10/11 技术栈深度对比
微服务·云原生·serverless·graalvm native·native aot·runtime async·.net11/java21