参考B站狂神说Docker教程
弱小和无知不是生存的障碍,傲慢才是 ——三体

由于学校给的服务器(windows server 2008 emm)不支持Docker,所以一直没有接触这东西,现在才觉得应该好好学习一下。

Docker 概述

Docker

一种小巧的虚拟化技术(虚拟机也是虚拟化技术,但比较笨重),基于GoLang开发

Docker出现原因

一款产品有两套环境

  • 线上环境
  • 开发环境

开发和部署环境就会比较麻烦,每一个机器都要部署环境,浪费时间。 那么我们项目文件能不能和环境一起打包发布呢?

传统方式:开发人员开发jar包,运维来上线

现在的方案:开发打包部署上线,一套流程完成

在这种需求下Docker应运而生!

Docker的核心思想

打包装箱,相互隔离
互不影响

Docker与虚拟机的差别

  • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,在此基础上安装和运行软件
  • 容器内的应用直接运行在宿主机的内容,容器没有自己的内核,也没有虚拟硬件,更加轻便
  • 每个容器间石象湖隔离的,每个容器有自己的文件系统,互不影响

虚拟机
Docker

对DevOps(开发、运维)的意义

  1. 应用更快速的交付和部署
  2. 更便捷的升级和扩缩容
  3. 更简单的系统运维(开发测试环境高度一致)
  4. 更搞笑的计算资源利用

Docker构成

镜像(Image)

docker镜像累死一个模板可以用这个模板来创建容器服务,通过这个镜像可以创建多个容器

容器(Container)

容器技术独立运行一个或者一组应用,通过镜像来创建。
可以简单理解成一个简单的Linux系统

仓库(Repository)

仓库是存放镜像的地方

Docker安装

官方文档

启动服务

systemctl start docker

hello-world 测试

docker run hello-world

如果正常的话会出现如下输出

Unable to find image 'hello-world:latest' locally (无法在本地找到该镜像)
latest: Pulling from library/hello-world (从远程仓库拉取)
2db29710123e: Pull complete  (拉取成功)
Digest: sha256:10d7d58d5ebd2a652f4d93fdd86da8f265f5318c6a73cc5b6a9798ff6d2b2e67
Status: Downloaded newer image for hello-world:latest

Hello from Docker! (运行成功)
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

通过 docker images 查看本地所有镜像

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    feb5d9fea6a5   7 months ago   13.3kB

可见hello-world已经在本地存在

开启阿里云容器镜像加速服务

阿里云配置地址

选择相应操作系统,运行命令即可
例如

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker