docker学习记录

1.什么是docker?

Docker是一个容器引擎,使用 Linux 内核功能(如命名空间和控制组)在操作系统之上创建容器。除了作为一种容器技术之外,Docker 还具有定义明确的包装器组件,这使打包应用程序变得十分容易,Docker 通过将所有应用程序系统的需求打包到容器中,完成了将应用程序与基础设施分离的所有工作。

例如,如果有一个 Java jar 文件,我们可以在任何安装了 java 的服务器上运行它。同样的,一旦使用 Docker 将容器与所需的应用程序打包在一起,我们就可以在任何其他安装了 Docker 的主机上运行它。

原文链接

2. docker如何工作?

docker的三大组成要素

  • 镜像:Docker镜像是一个特殊的文件系统除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。镜像可以用来创建Docker容器,用户可以使用设备上已有的镜像来安装多个相同的Docker容器
  • 容器:镜像创建的运行实例,Docker利用容器来运行应用。每个容器都是相互隔离的、保证安全的平台。我们可以把容器看做是一个轻量级的Linux运行环境。
  • 镜像仓库:集中存放镜像文件的地方。用户创建完镜像后,可以将其上传到公共仓库或者私有仓库,需要在另一台主机上使用该镜像时,只需要从仓库上下载即可。

镜像运行起来是容器(真正的执行单位),可以类比c++,镜像是面向对象的类,容器是具体的对象。

docker运行流程

docker学习记录_第1张图片

  • Docker客户端:用于和Docker守护进程(Docker Daemon)建立通信的客户端。Docker客户端只需要向Docker服务器或者守护进程发出请求(Docker构建、Docker拉取和Docker启动等指令),服务器或者守护进程将完成所有工作并返回结果。
  • Docker主机:一个物理或者虚拟的机器用于执行 Docker守护进程和容器
  • Docker守护进程:接收并处理Docker客户端发送的请求,监测Docker API的请求和管理Docker对象,比如镜像、容器、网络和数据卷。

3.mac M1安装docker

下载地址⏬

用户手册

记得配置镜像⚠️(Docker Engine修改为一下内容)

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "https://0wg8f6sb.mirror.aliyuncs.com"
  ]
}

安装dmg方法后,在命令行可能找不到docker,会报错:

sudo: docker: command not found

解决方法:手动将docker加入path

export PATH="$PATH:/Applications/Docker.app/Contents/Resources/bin/"

 4.docker常用命令

 查看自己服务器的docker镜像列表

docker images

拉取镜像

docker pull image-name(最新版本)
docker pull image-name:tag(指定版本)

在新容器中运行镜像

docker container run image-name
docker run image-name(二者等价,建议用前者)

列出本机

你可能感兴趣的:(docker,学习,容器)