一、什么是docker?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的
镜像
中,然后发布到任何流行的Linux
或Windows
机器上,也可以实现虚拟化
。容器是完全使用沙箱
机制,相互之间不会有任何接口Docker是基于容器技术的
轻量级
虚拟化解决方案
1、docker的基本组成
镜像(image)
Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。通过一个镜像可以创建多个容器。
容器
Docker利用容器技术,运行一个或者多个应用,通过镜像来创建。
启动、停止、删除、基本命令
仓库
仓库(Repository)是集中存放镜像的地方。
2、安装Docker (根据官方文档安装)
环境准备
1、 需要掌握基本的linux命令
2、 Ubuntu 18.04
3、使用Xshell连接远程服务器
环境查看
# 系统内核 4.15 以上
root@iZ2zeiqj5av1yaulh3shsuZ:~# uname -r
4.15.0-48-generic
# 系统版本
root@iZ2zeiqj5av1yaulh3shsuZ:~# cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.2 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.2 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
安装
# 1、卸载旧的版本
$ sudo apt-get remove docker docker-engine docker.io containerd runc
# 2、需要安装的包
$ sudo apt-get update #更新 apt
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
# 3、Add Docker’s official GPG key
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88 # 查看是否添加成功
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
# 4、设置镜像仓库
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# 5、安装Docker引擎 (直接安装最新的)
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
# 6、查看是否安装成功 (默认安装完好像自动启动了)
$ docker version
# 6、运行 hello-world 镜像
$ sudo docker run hello-world
# 7、查看下载的镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 10 months ago 13.3kB
3、阿里云镜像加速
1、登录阿里云找到容器镜像服务并开通
2、找到镜像加速器
3、配置使用
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://5qayfnj7.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
4、回顾hello-world镜像运行
Docker运行流程图
5、底层原理
Docker是怎么工作的?
Docker是一个client-server结构的系统 ,Docker的守护进程运行在主机上,通过Socket从客户端访问
Docker-Server接收到Docker-Client的指令后,就会执行这个命令。
Docker为什么比虚拟机快?
-
Docker有着比虚拟机更少的抽象层。
-
Docker利用的是宿主机的内核,而不需要Guest OS,因此,当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统,避免了引导、加载操作系统内核这个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,这个新建过程是分钟级别的,而Docker由于直接利用宿主机的操作系统则省略了这个过程,因此新建一个Docker容器只需要几秒钟。