Docker的基本组成

镜像(image)
Docker 镜像就好比是一个模板,可以通过这个模板来创建容器服务,通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的).
容器(container)
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的
启动,停止,删除,基本命令!
目前就可以把这个容器理解为就是一个简易的linux系统
仓库(repository)
仓库就是存放镜像的地方
仓库分为公有仓库和私有仓库
安装docker
环境查看
liuyang@docker:~$ cat /etc/os-releaseNAME="Ubuntu"VERSION="20.04.1 LTS (Focal Fossa)"ID=ubuntuID_LIKE=debianPRETTY_NAME="Ubuntu 20.04.1 LTS"VERSION_ID="20.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=focalUBUNTU_CODENAME=focal
帮助文档 链接 https://docs.docker.com/get-docker/
卸载旧的版本
$ sudo apt-get remove docker docker-engine docker.io containerd runc
安装方法
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
设置存储库
1.更新apt软件包索引并安装软件包以允许apt通过HTTPS使用存储库
sudo apt-get updatesudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common
2.添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo apt-key fingerprint 0EBFCD88
3.使用以下命令来设置稳定的存储库
sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) \stable"
安装Docker引擎
1.更新apt程序包索引,并安装最新版本的Docker Engine和容器,或转到下一步以安装特定版本:
sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io
2.要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装:
liuyang@docker:~$ apt-cache madison docker-cedocker-ce | 5:19.03.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packagesdocker-ce | 5:19.03.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packagesdocker-ce | 5:19.03.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packagesdocker-ce | 5:19.03.9~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
使用第二列中的版本字符串安装特定版本,例如5:19.03.12~3-0~ubuntu-focal。
$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
通过运行
hello-world映像来验证是否正确安装了Docker Enginesudo docker run hello-world
此命令下载测试图像并在容器中运行它。容器运行时,它会打印参考消息并退出。
查看下载的镜像
liuyang@docker:~$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest bf756fb1ae65 8 months ago 13.3kB
卸载docker
1.卸载Docker Engine,CLI和Containerd软件包:
sudo apt-get purge docker-ce docker-ce-cli containerd.io
2.主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷
sudo rm -rf /var/lib/docker
阿里云镜像加速
1.登录阿里云找到容器服务器
2.找到加速地址
3.配置使用
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://3b86dgtw.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker
docker run 的运行原理图

底层原理图
Docker是怎么工作的
Docker是一个Client-service结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问!
DockerServe 接受到Docker-Client的指令,就会执行这个命令
Docker为什么比VM快
1.Docker有着比虚拟机更少的抽象层
2.docker利用的是宿主机的内核,vm需要的是Guest OS.
所以说,新建一个容器的时候,Docker不需要像虚拟机一样重新加载一个操作系统,避免引导.虚拟机是加载Guest OS ,分钟级别的,而docker是利用宿主机的操作系统,省略了这个复杂的过程,启动时秒级的
