Docker 基本原理

1. Docker结构

Docker架构图
镜像(image)
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务。
如: tomcat镜像 => run => tomcat01容器(提供服务器)。
通过镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)

容器(container)
Docker 利用容器技术,独立运行一个或一组应用,通过镜像来创建的。

基本命令: 启动,停止, 删除
可以把一个容器理解为一个简易的linux系统

仓库(repository)
仓库就是存放镜像的地方
仓库分为公有仓库和私有仓库

2. Docker 安装

环境查看

# 系统内核是3.10 以上的
[root@VM-4-17-centos ~]# uname -r
3.10.0-1160.45.1.el7.x86_64
# 查看系统版本
[root@VM-4-17-centos ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

帮助文档

# 1. 卸载旧的docker版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 2. 下载需要的安装包
sudo yum install -y yum-utils
# 3. 设置镜像仓库
sudo yum-config-manager \
    --add-repo \
	http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 跟新yum索引 不必须
sudo yum makecache fast
# 4. 安装docker相关引擎  docker-ce 社区版
sudo yum install docker-ce docker-ce-cli containerd.io
# 5. 启动docker
systemctl start docker
# 6. 查看是否安装成功
docker version
# 7. 测试helloworld
docker run hello-world
# 注意:能看到本地没有hello-world镜像,所以去远程拉了一份
#[root@VM-4-17-centos /]# docker run hello-world
#Unable to find image 'hello-world:latest' locally
#latest: Pulling from library/hello-world
#2db29710123e: Pull complete 
#Digest: sha256:4c5f3db4f8a54eb1e017c385f683a2de6e06f75be442dc32698c9bbe6c861edd
#Status: Downloaded newer image for hello-world:latest

#Hello from Docker!
# 8. 查看下载的hello-world镜像
docker images
[root@VM-4-17-centos /]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    feb5d9fea6a5   5 months ago   13.3kB
# 9. 卸载docker
sudo yum remove docker-ce docker-ce-cli containerd.io
# 删除目录
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
# /var/lib/docker 是docker的默认工作路径

docker配置阿里云镜像加速

# 注意url加速地址根据自己的阿里云给你分配的来
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://x9hspile.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2. Hello World镜像run的流程

Docker允许流程

3. Docker 底层原理

Docker是怎样工资的?
Docker是一个C/S架构的系统,Docker的守护进程运行在主机上,通过Socket从客户端进行访问!
DockerServer接收到DocekrClient的指令,就会执行这个命令

Docker原理图
Docker为什么比VM快?
1、 Docker有着比虚拟机更少的抽象层
2、 Docker利用的是宿主机内核,VM需要的是Guest OS
Docker和VM结构图
所以说,新建一个容器时,Docker不需要象虚拟机一样重新加载一个操作系统内核,比秒引导。虚拟机是加载Guest OS,分钟级别的,而Docker是利用宿主机的操作系统,省略了这个过程,秒级。
Docker和VM对比

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值