1.什么是docker?
Docker是一个容器引擎,使用 Linux 内核功能(如命名空间和控制组)在操作系统之上创建容器。除了作为一种容器技术之外,Docker 还具有定义明确的包装器组件,这使打包应用程序变得十分容易,Docker 通过将所有应用程序系统的需求打包到容器中,完成了将应用程序与基础设施分离的所有工作。
例如,如果有一个 Java jar 文件,我们可以在任何安装了 java 的服务器上运行它。同样的,一旦使用 Docker 将容器与所需的应用程序打包在一起,我们就可以在任何其他安装了 Docker 的主机上运行它。
原文链接🔗
2. docker如何工作?
🌟docker的三大组成要素🌟
- 镜像:Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。镜像可以用来创建Docker容器,用户可以使用设备上已有的镜像来安装多个相同的Docker容器。
- 容器:镜像创建的运行实例,Docker利用容器来运行应用。每个容器都是相互隔离的、保证安全的平台。我们可以把容器看做是一个轻量级的Linux运行环境。
- 镜像仓库:集中存放镜像文件的地方。用户创建完镜像后,可以将其上传到公共仓库或者私有仓库,需要在另一台主机上使用该镜像时,只需要从仓库上下载即可。
镜像运行起来是容器(真正的执行单位),可以类比c++,镜像是面向对象的类,容器是具体的对象。
🌟docker运行流程🌟
- 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(二者等价,建议用前者)
列出本机