学习自b站狂神说Docker: https://www.bilibili.com/video/BV1og4y1q7M4/?spm_id_from=333.337.search-card.all.click
安装Docker
环境准备:linux基础+CentOS7+Xshell连接远程服务器进行操作
环境查看
# 系统内核是3.10以上的
uname -r #查看内核
# 系统版本OS7
cat /etc/os-release #查看版本
安装
1.卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
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
4.更新yum软件包索引
yum makecache fast
5.安装Docker相关 ce是社区版 ee企业版
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
//也可以安装指定版本的
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
6.启动Docker命令
systemctl start docker
//通过docker version可查看是否安装成功
7.测试hello world命令
docker run hello-world
//运行run命令,首先没有找到hello-world的镜像,然后去远程拉取这个镜像(官方下的library/hello-world),出现一个签名信息代表拉取成功,运行后出现hello from Docker表示Docker安装成功
8.查看下载的hello-world镜像命令
docker images
9.卸载-卸载依赖,删除资源
//卸载依赖
yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
//删除资源
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
阿里云镜像加速
1.登录阿里云找到容器服务(容器镜像服务)
2.找到镜像加速地址(镜像加速器)
3.配置使用
# 新建一个目录 管理账户可省去sudo
sudo mkdir -p /etc/docker
# 编写配置文件在daemon.json中配置镜像地址
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://rqbbx6zo.mirror.aliyuncs.com"]
}
EOF
# 重启镜像
sudo systemctl daemon-reload
# /重启Docker
sudo systemctl restart docker
回顾Hello world流程
run的运行流程图
底层原理
Docker是一个Client-Server结构的系统,Docker的守护进程运行(后台运行)在主机上(宿主机),通过Socket从客户端访问!
DockerServer接收到Docker-Client的指令就会执行这个命令!
Docker为什么比VM快
- Docker有比虚拟机更少的抽象层
- Docker利用的是宿主机的内核,vm需要的是Guest OS(需要搭建环境)
所以说,新建一个容器的时候。Docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导性的操作。
虚拟机加载Guest OS是分钟级别的,而docker是利用宿主机的操作系统,省略了这个复杂的过程,是秒级的。
遇到的问题
docker服务没正常启动
#Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
systemctl daemon-reload #重新加载服务的配置文件
systemctl restart docker.service #重启docker服务