Docker 的基本组成
Client 客户端
Docker_Host 服务器
Registry 仓库
镜像(image):
docker镜像就好比是一个模版,可以通过这个模版来创建容器服务,tomcat镜像------->run ------->tomcat01容器(提供服务器)
容器(container):
docker利用容器技术,可以独立运行一个或一组应用,通过镜像来创建!
启动,停止,删除,基本命令!
目前可以把容器理解为一个简单的linux系统
仓库(repository):
仓库就是来存放镜像的地方!
仓库分为 公有仓库 和 私有仓库
公有例如:
Docker Hub(默认是国外的)
安装Docker
环境准备
- 需要会Linux基础
- CentOS7
- 远程软件
环境查看
系统内核 3.10以上
[root@localhost /]# uname -r
3.10.0-1160.el7.x86_64
系统版本
[root@localhost /]# 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”
安装
官网帮助文档(https://docs.docker.com/engine/install/centos/)
针对各个版本的操作系统,官网可以找到详细的安装教程! 上附链接为CentOS的! 其他操作系统的也可在链接中找到!
1.安装前先卸载掉旧的版本:
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine -y
2.需要的安装包
yum install -y yum-utils
3.设置镜像的仓库
#官方默认
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#阿里
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#默认是从国外的,下载十分慢!
这里我们不适用官方的
使用国内的阿里云的会比较快
#更新yum软件包索引
yum makecache fast
4.安装最新的Docker
yum install docker-ce docker-ce-cli containerd.io -y
#docker-ce社区版 docker-ee企业版
yum list docker-ce --showduplicates | sort -r
#查看docker可安装版本
yum install -y docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
#安装指定版本
5.启动docker,查看docker 版本
systemctl start docker
docker version
#可通过此命令查看是否安装成功!
6.测试
docker run hello-world
- 没有寻找到镜像!
Unable to find image ‘hello-world:latest’ locally
- 远程拉官方library下的 hello-world
latest: Pulling from library/hello-world
- 拉取之后产生签名信息,代表拉取OK !~
0e03bdcc26d7: Pull complete
Digest: sha256:e7c70bb24b462baa86c102610182e3efcb12a04854e8c582838d92970a09f323
Status: Downloaded newer image for hello-world:latest
拉取后因执行run命令,屏显 “Hello from Docker!” 说明你的docker已经安装成功!
Hello from Docker!
This message shows that your installation appears to be working correctly.
7.查看一下 下载的 hello-world 镜像
[root@localhost /]# docker images
卸载 docker
#卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
#删除资源
rm -rf /var/lib/docker
# /var/lib/docker docker默认工作路径
阿里云镜像加速
这里说下, 加速是免费的。注册个阿里账号就可以了。
1.登录阿里云,找到容器镜像服务
2.找到镜像加速地址
3.配置使用
#新建目录
sudo mkdir -p /etc/docker
#docker下daemon.json 给他配置一个阿里云的地址(https://sy60eocl.mirror.aliyuncs.com)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://sy60eocl.mirror.aliyuncs.com"]
}
EOF
#以上配置完成后 重新加载镜像
sudo systemctl daemon-reload
#重启docker
sudo systemctl restart docker
回顾流程!
Hello World是怎样执行的!
报错例如:
[root@localhost /]# docker run ayuuu546546416165165156
Unable to find image 'ayuuu546546416165165156:latest' locally
docker: Error response from daemon: pull access denied for ayuuu546546416165165156, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
底层原理
docker是怎么工作的?
docker是一个Client - Server 结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问!
Docker Server 接收到Docker-Client 的指令,就会执行这个命令!
Docker 为什么比VM快?
1.Docker有着比虚拟机更少的抽象层
2.Docker利用的是宿主机的内核,vm需要时Guest OS
所以,新建一个容器的时候,Docker不需要像虚拟机一样重新加载一个操作系统的内核,避免引导! 虚拟机是加载 Guest OS,分钟级别的。
Docker是利用宿主机的操作系统,省略了这个复杂的过程! 秒级 !
理论未曾实践!
之后的学习笔记会逐步实践!
最后再回过头来看理论,我想就会很清晰了!
学习地址:
https://www.bilibili.com/video/BV1og4y1q7M4?p=5