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  强制关闭容器
相关推荐
虚伪的空想家5 小时前
rook-ceph配置dashboard代理无法访问
ceph·云原生·k8s·存储·rook
ZHOU_WUYI5 小时前
一个简单的分布式追踪系统
分布式
码不停蹄的玄黓9 小时前
MySQL分布式ID冲突详解:场景、原因与解决方案
数据库·分布式·mysql·id冲突
王小王-12310 小时前
基于Hadoop的公共自行车数据分布式存储和计算平台的设计与实现
大数据·hive·hadoop·分布式·hadoop公共自行车·共享单车大数据分析·hadoop共享单车
Connie145111 小时前
k8s多集群管理中的联邦和舰队如何理解?
云原生·容器·kubernetes
要开心吖ZSH12 小时前
《Spring 中上下文传递的那些事儿》Part 4:分布式链路追踪 —— Sleuth + Zipkin 实践
java·分布式·spring
幼稚园的山代王13 小时前
RabbitMQ 4.1.1初体验
分布式·rabbitmq·ruby
百锦再13 小时前
RabbitMQ用法的6种核心模式全面解析
分布式·rabbitmq·路由·消息·通道·交换机·代理
一路向北North13 小时前
RabbitMQ简单消息监听和确认
分布式·rabbitmq·ruby
伤不起bb15 小时前
Kubernetes 服务发布基础
云原生·容器·kubernetes