docker 基本组成
镜像(image)
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,Tomcat镜像==> run ==> Tomcat01 容器(提供服务器),通过这个镜像可以创建多个容器(最终项目运行就是在容器中的)
容器(container)
docker利用容器技术,独立运行一个或一组应用,通过镜像来创建的。
启动、停止、删除、基本命令
目前就可以把这个容器理解为就是一个简易的linux系统
仓库(repository)
仓库就是存放镜像的地方 !
仓库分为共有仓库和私有仓库!
docker hub (默认是国外的)
阿里云 也有容器服务(配置镜像加速)
安装 Docker
1.环境查看:
## 系统内核是 3.10 以上的uname -aLinux kylin 4.15.0-106-generic #107-Ubuntu SMP Thu Jun 4 11:27:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/os-releaseroot@kylin:~# cat /etc/os-releaseNAME="Ubuntu"VERSION="18.04.5 LTS (Bionic Beaver)"ID=ubuntuID_LIKE=debianPRETTY_NAME="Ubuntu 18.04.5 LTS"VERSION_ID="18.04"HOME_URL="https://www.ubuntu.com/"SUPPORT_URL="https://help.ubuntu.com/"BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"VERSION_CODENAME=bionicUBUNTU_CODENAME=bionic
2.查看文档并安装(Ubuntu)
https://docs.docker.com/engine/install/ubuntu/
安装:
#第一步:卸载原有的dockersudo apt-get remove docker docker-engine docker.io containerd runc#第二步:需要的安装包sudo apt-get updatesudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common#第三步:安装GPG证书curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -#第四步:写入软件源信息sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"#第五步:docker-ce 社区版 docker-ee 企业版sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io
测试:
sudo docker run hello-world#查看下载的hello-world镜像sudo docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest bf756fb1ae65 7 months ago 13.3kB
卸载:docker
#卸载依赖sudo apt-get purge docker-ce docker-ce-cli containerd.io#删除资源sudo rm -rf /var/lib/docker
阿里云镜像加速:(在自己的阿里云界面找到就可以,每个人的加速地址都不一样)
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker
3.底层原理
docker怎么工作的?
Docker是一个Client—Server 结构的系统,Docker的 守护进程 运行在主机上。通过 socket 从客户端访问 !
DockerSever 接收到 Docker-Client 的指令,就会执行这个命令
docker为什么比虚拟机快?
1、docker 有着比虚拟机更少的抽象层
2、docker利用的是宿主机的内核,vm需要的是Guest os
新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导。
虚拟机是加载guest os ,分钟级别的。
docker是利用宿主机的操作系统,省略了这个复杂的过程,是一个秒级的。

