docker 基本组成
镜像(image)
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,Tomcat镜像==> run ==> Tomcat01 容器(提供服务器),通过这个镜像可以创建多个容器(最终项目运行就是在容器中的)
容器(container)
docker利用容器技术,独立运行一个或一组应用,通过镜像来创建的。
启动、停止、删除、基本命令
目前就可以把这个容器理解为就是一个简易的linux系统
仓库(repository)
仓库就是存放镜像的地方 !
仓库分为共有仓库和私有仓库!
docker hub (默认是国外的)
阿里云 也有容器服务(配置镜像加速)
安装 Docker
1.环境查看:
## 系统内核是 3.10 以上的
uname -a
Linux 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-release
root@kylin:~# cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_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=bionic
UBUNTU_CODENAME=bionic
2.查看文档并安装(Ubuntu)
https://docs.docker.com/engine/install/ubuntu/
安装:
#第一步:卸载原有的docker
sudo apt-get remove docker docker-engine docker.io containerd runc
#第二步:需要的安装包
sudo apt-get update
sudo 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 update
sudo apt-get install docker-ce docker-ce-cli containerd.io
测试:
sudo docker run hello-world
#查看下载的hello-world镜像
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-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/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo 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是利用宿主机的操作系统,省略了这个复杂的过程,是一个秒级的。