Docker基础快速入门试用Docker文章1

Docker是基于Go语言开发的软件,Docker通过应用之间的隔离实现统一的应用环境打包和生成,内核级别的虚拟化,使得运维直接可以获取到一个完整的项目代码+项目运行环境,并且项目之间相互隔离。

WIndows11 最新的WSL2可以支持新版本的Docker直接运行,不需要再次开启虚拟机服务(H-y),甚至可以直接打开Linux系统中安装的应用(依旧需要试用开启CPU虚拟化)。

image-20211015155745645

DevOps:开发+运维 应用更快的交付和部署,更便捷的升级和扩缩容(集群)

  • 镜像(img)

系统模板,通过模板来创建容器服务,tomcat镜像=tomcat服务,通过这个镜像可以创建多个容器

  • 容器(container)

简易Linux系统,Docker通过容器技术,独立运行一个或者一组应用,这些应用都是通过镜像来创建的。容器的启动/删除

  • 仓库(repository)

存放镜像的地方,分为共有仓库和私有仓库(配置国内镜像加速)

安装Docker

两种安装方法:

  1. 直接在Windows中进行安装,Docker Desktop已经支持了Windows WSL2,所以可以直接安装在Window桌面版软件

  2. 可以在WSL2中使用命令行进行Linux系统中的安装,需要首先在本机中升级WSL版本,并且在Windows store中安装Ubuntu或者是其他版本的Linux,然后打开该虚拟机进行安装。

    例如Ubuntu,使用apt install可以直接安装,在Windows11中国安装后的应用会直接显示在开始菜单中,无需打开Linux界面或者是命令行就可以直接使用。

如果采用的是第一种方式的安装,需要在Docker中进行设置(Setting-General-Use the WSL2 based engine以及setting-resources-wsl integration勾选Ubuntu)

可选配置国内镜像,使用阿里云开启镜像加速服务,需要将地址修改在Settings-Docker Engine中

  "registry-mirrors": [
"https://xxxxx.mirror.aliyuncs.com"
],

配置完成后,可以进入Ubuntu系统命令行中使用docker version获取到当前计算机的Docker情况

stiller@DESKTOP-DSI1KH0:~$ docker version
Client: Docker Engine - Community
 Cloud integration: 1.0.17
 Version:           20.10.8
 API version:       1.41
 Go version:        go1.16.6
 Git commit:        3967b7d
 Built:             Fri Jul 30 19:54:02 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.8
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.6
  Git commit:       75249d8
  Built:            Fri Jul 30 19:52:10 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.9
  GitCommit:        e25210fe30a0a703442421b0f60afac609f950a3
 runc:
  Version:          1.0.1
  GitCommit:        v1.0.1-0-g4144b63
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

如果在Linux命令行中出现了上述的内容,说明Docker已经安装成功,可以使用下方的命令完成第一个镜像的下载和测试,如下代码所示。

docker run hello-world

此时的本地Docker环境中没有任何的镜像,所以会出现运行失败的提示,同时会自动的使用pull命令下载最新的HelloWorld镜像包,最终等待结果会自动的下载HelloWorld镜像包并且正确的打印屏幕输出。

使用下方的命令可以查看此时本机已经下载的镜像,如下代码所示。

docker images

显示内容如下所示。

stiller@DESKTOP-DSI1KH0:~$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    feb5d9fea6a5   3 weeks ago    13.3kB
alpine/git    latest    b8f176fa3f0d   4 months ago   25.1MB

Docker工作方式:

是一个C/S结构的系统,一个守护进程运行在主机(运行各个镜像)上以Socket进行客户端访问,Docker的速度优化主要是在于较少的抽象层(缺少虚拟系统和虚拟机层),Linux直接运行在了宿主机中,而在Windows中使用WSL2进行实现(当然底层实际上还是虚拟了一个Linux)

链接