MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

Docker实战二之Docker安装和Docker原理

2025-03-17 18:37 huorong 精选文章 2 ℃ 0 评论

手动下载安装

由于我使用的是MacOS电脑,所以这里 使用MacOS 演示安装Docker。

手动下载,请点击以下链接下载Install Docker Desktop on Mac | Docker Docs

如同 macOS 其它软件一样,安装也非常简单,双击下载的 .dmg 文件,然后将鲸鱼图标拖拽到 Application 文件夹即可。

从应用中找到 Docker 图标并点击运行。可能会询问 macOS 的登陆密码,输入即可。

点击顶部状态栏中的鲸鱼图标会弹出操作菜单。

第一次点击图标,可能会看到这个安装成功的界面,点击 "Got it!" 可以关闭这个窗口。

启动终端后,通过命令可以检查安装后的 Docker 版本。

使用命令 docker -v 或 docker --version

a123456@luludeMacBook-Pro-2 bin % docker -v
Docker version 20.10.8, build 3967b7d
a123456@luludeMacBook-Pro-2 bin % docker --version
Docker version 20.10.8, build 3967b7d

运行hello-world

a123456@luludeMacBook-Pro-2 Dockerfile % docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete 
Digest: sha256:53641cd209a4fecfc68e21a99871ce8c6920b2e7502df0a20671c6fccc73a7c6
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/

镜像加速

国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

  • 科大镜像:https://docker.mirrors.ustc.edu.cn/
  • 网易:https://hub-mirror.c.163.com/
  • 阿里云:https://<你的id>.mirror.aliyuncs.com
  • 七牛云加速器:https://reg-mirror.qiniu.com

当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。

我使用的是网易的镜像地址 和 阿里云的镜像地址

http://hub-mirror.c.163.com


https://qpc4mmbo.mirror.aliyuncs.com/。

在任务栏点击 Docker for mac 应用图标 -> Perferences -> Docker Engine 。在JSON中填写加速器地址即可。修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。

{
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "builder": {
    "gc": {
      "enabled": true,
      "defaultKeepStorage": "20GB"
    }
  },
  "registry-mirrors": ["http://hub-mirror.c.163.com","https://qpc4mmbo.mirror.aliyuncs.com"]
}

检查加速器是否生效配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 docker info,如果从结果中看到了如下内容,说明配置成功。

a123456@luludeMacBook-Pro-2 bin % docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Build with BuildKit (Docker Inc., v0.6.3)
  compose: Docker Compose (Docker Inc., v2.0.0)
  scan: Docker Scan (Docker Inc., v0.8.0)

Server:
 Containers: 4
  Running: 1
  Paused: 0
  Stopped: 3
 Images: 4
 Server Version: 20.10.8
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: e25210fe30a0a703442421b0f60afac609f950a3
 runc version: v1.0.1-0-g4144b63
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 5.10.47-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 1.94GiB
 Name: docker-desktop
 ID: CXVD:YXMM:COF5:XW2G:ET45:SOZR:XJOY:K32H:5N5B:JLTE:UP5A:6LKX
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  http://hub-mirror.c.163.com/
  https://qpc4mmbo.mirror.aliyuncs.com/
 Live Restore Enabled: false
$ docker info 
Registry Mirrors:
  http://hub-mirror.c.163.com/
  https://qpc4mmbo.mirror.aliyuncs.com/

Docker 原理

Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,然后通过Scoket连接从客户端访问。守护进程从客户端接收命令并管理运行在主机上的容器。容器是一个运行时环境。

在Docker架构中:

  • Docker Client:客户端就是Docker命令行工具;用户直接操作Client,由Client向Server发送请求。
  • Docker Server:服务器端就是Docker守护进程(Docker daemon),它接收Client的请求,直接操作Docker组件,然后返回响应给Client.

客户端和服务端是通过REST API交互的:

Tags:mac docker 安装

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言