Docker的简介
Docker是一个虚拟化平台( 官网https://www.docker.com/),诞生于 2013 年初,基于 Google 公司的 Go 语言进行实现。可以通过虚拟化方式,为应用提供可运行的容器。基于这种方式,可更快地打包、测试以及部署应用程序。
现阶段,很多应用软件的安装都在向基于docker方式的安装进行实现。例如mysql,那么为什么不直接在操作系统中安装一个mysql,而是用容器呢?因为,安装MySql过程并不简单,要配置安装源,安装依赖包,对mysql进行配置…如果要在多台主机上安装,每台主机都要进行这些繁琐的操作,万一服务器挂了,这一系列操作还要再重来一遍,但有了docker,一个安装配置好的mysql容器,可以直接拿到另一台主机上启动,而不必重新安装mysql。另外,docker还有一重要的用处,就是可以保证开发,测试和生产环境的一致.
Docker 核心对象
镜像(Image)
Docker 镜像是一个特殊的文件系统(https://hub.docker.com/),除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。例如JDK镜像、Centos镜像、MySQL镜像等,可以暂时先将其理解为一个安装程序。
容器(Container)
Docker容器可以将其理解为一个运行镜像的载体,镜像(Image)和容器(Container)的关系,就像是光盘和光驱。容器基于镜像创建、启动,然后运行镜像的中的文件。
Docker的架构分析
Docker 是一种Client/Server架构的应用程序,如图所示:
- Docker Host是我们的docker宿主机(就是安装了docker的操作系统)
- Registry是docker拉取镜像的远程仓库,提供大量的镜像供下载,下载完成之后保存在Images中
- Docker Daemon是docker的服务线程,处理Docker客户端命令。
- Images 是Docker本地的镜像仓库,可以通过docker images查看镜像文件。
Docker的运行机制
docker pull 执行过程:
1)客户端将指令发送给docker daemon
2)docker daemon 先检查本地images中有没有相关的镜像
3)如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地
docker run 执行过程:
1.检查本地是否存在指定的镜像,不存在就从共有仓库下载
2.利用镜像创建并启动一个容器
3.分配一个文件系统(简版linux系统),并在只读的镜像层外面挂载一层可读层
4.从宿主机配置的网桥接口中桥接一个虚拟接口到容器中
5.从地址池配置一个ip地址给容器
6.执行用户指定的应用程序
Docker的安装
1.准备CentOS
2.基于vmware打开CentOS
3.克隆CentOS
开启虚拟机系统
第一步:启动虚拟机,默认账号为root/root
第二步:打开终端,通过ifconfig指令检查网络
第三步:通过MobaXterm连接虚拟机系统
卸载docker
加油已经安装过的话,通过在线安装的docker可以通过以下指令卸载:
sudo yum remove docker-ce \
docker-ce-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
在线安装docker
第一步:安装一组工具
sudo yum install -y yum-utils
第二步:设置yum仓库地址
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
第三步:更新yum缓存
sudo yum makecache fast #yum 是包管理器
第四步:安装新版docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
离线安装docker
第一步:下载docker离线包
https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz
第二步:需要离线安装工具
https://github.com/Jrohy/docker-install/
第三步:想下载好的资源放在同一个目录:
在linux环境下,创建/root/setup/docker目录,然后拷贝下载好的资源到此目录(可通过MobaXterm工具直接上传到linux目录),例如
[root@centos7964 docker]# pwd
/root/setup/docker
[root@centos7964 docker]# ls -l
总用量 68132
-rw-r--r--. 1 root root 69637582 8月 4 13:04 docker-20.10.6.tgz
-rw-r--r--. 1 root root 114793 8月 4 13:04 docker.bash
-rwxr-xr-x. 1 root root 7546 8月 4 13:04 install.sh
第四步:执行安装操作
# 进入/root/setup/docker 文件夹
cd /root/setup/docker
# 为 install.sh添加执行权限
chmod +x install.sh
# 安装
./install.sh -f docker-20.10.6.tgz
第五步:安装之后检查状态
docker info