Docker的基本组成

image.png
镜像(image)
Docker 镜像就好比是一个模板,可以通过这个模板来创建容器服务,通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的).

容器(container)
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的
启动,停止,删除,基本命令!
目前就可以把这个容器理解为就是一个简易的linux系统

仓库(repository)
仓库就是存放镜像的地方
仓库分为公有仓库和私有仓库

安装docker

环境查看

  1. liuyang@docker:~$ cat /etc/os-release
  2. NAME="Ubuntu"
  3. VERSION="20.04.1 LTS (Focal Fossa)"
  4. ID=ubuntu
  5. ID_LIKE=debian
  6. PRETTY_NAME="Ubuntu 20.04.1 LTS"
  7. VERSION_ID="20.04"
  8. HOME_URL="https://www.ubuntu.com/"
  9. SUPPORT_URL="https://help.ubuntu.com/"
  10. BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
  11. PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
  12. VERSION_CODENAME=focal
  13. UBUNTU_CODENAME=focal

帮助文档 链接 https://docs.docker.com/get-docker/
卸载旧的版本

  1. $ sudo apt-get remove docker docker-engine docker.io containerd runc

安装方法

在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。

设置存储库

1.更新apt软件包索引并安装软件包以允许apt通过HTTPS使用存储库

  1. sudo apt-get update
  2. sudo apt-get install \
  3. apt-transport-https \
  4. ca-certificates \
  5. curl \
  6. gnupg-agent \
  7. software-properties-common

2.添加Docker的官方GPG密钥

  1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  2. sudo apt-key fingerprint 0EBFCD88

3.使用以下命令来设置稳定的存储库

  1. sudo add-apt-repository \
  2. "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  3. $(lsb_release -cs) \
  4. stable"

安装Docker引擎

1.更新apt程序包索引,并安装最新版本的Docker Engine和容器,或转到下一步以安装特定版本:

  1. sudo apt-get update
  2. sudo apt-get install docker-ce docker-ce-cli containerd.io

2.要安装特定版本的Docker Engine,请在存储库中列出可用版本,然后选择并安装:

  1. liuyang@docker:~$ apt-cache madison docker-ce
  2. docker-ce | 5:19.03.12~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
  3. docker-ce | 5:19.03.11~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
  4. docker-ce | 5:19.03.10~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
  5. docker-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

  1. $ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
  1. 通过运行hello-world 映像来验证是否正确安装了Docker Engine

    1. sudo docker run hello-world

    此命令下载测试图像并在容器中运行它。容器运行时,它会打印参考消息并退出。

  2. 查看下载的镜像

    1. liuyang@docker:~$ docker images
    2. REPOSITORY TAG IMAGE ID CREATED SIZE
    3. hello-world latest bf756fb1ae65 8 months ago 13.3kB

    卸载docker

    1.卸载Docker Engine,CLI和Containerd软件包:

    1. sudo apt-get purge docker-ce docker-ce-cli containerd.io

    2.主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷

    1. sudo rm -rf /var/lib/docker

阿里云镜像加速

1.登录阿里云找到容器服务器
image.png

2.找到加速地址
image.png
3.配置使用

  1. sudo mkdir -p /etc/docker
  2. sudo tee /etc/docker/daemon.json <<-'EOF'
  3. {
  4. "registry-mirrors": ["https://3b86dgtw.mirror.aliyuncs.com"]
  5. }
  6. EOF
  7. sudo systemctl daemon-reload
  8. sudo systemctl restart docker

docker run 的运行原理图

image.png

底层原理图

Docker是怎么工作的
Docker是一个Client-service结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问!
DockerServe 接受到Docker-Client的指令,就会执行这个命令

Docker为什么比VM快

1.Docker有着比虚拟机更少的抽象层
2.docker利用的是宿主机的内核,vm需要的是Guest OS.
image.png
所以说,新建一个容器的时候,Docker不需要像虚拟机一样重新加载一个操作系统,避免引导.虚拟机是加载Guest OS ,分钟级别的,而docker是利用宿主机的操作系统,省略了这个复杂的过程,启动时秒级的