Docker Desktop 使用指南:Windows 和 Mac 上的容器体验

好的,各位程序猿、程序媛们,欢迎来到今天的“Docker Desktop 使用指南:Windows 和 Mac 上的容器体验”讲座!我是你们的老朋友,代码界的段子手,BUG 界的终结者。今天咱们不聊虚的,直接上干货,用最接地气的方式,把 Docker Desktop 玩个底朝天!

开场白:容器,解放你的代码,拥抱你的自由!

在软件开发的世界里,我们就像一群辛勤的农夫,每天在不同的“土地”(操作系统)上耕耘。然而,不同的土地有不同的脾气,有的肥沃,有的贫瘠,有的干旱,有的涝灾。这就导致我们的代码,在自己的电脑上跑得飞起,一到客户的服务器上就水土不服,各种报错,简直比丈母娘看女婿还挑剔!

怎么办?难道我们要为了适应不同的土地,每次都重新播种、施肥、除草吗?No No No!我们有 Docker!

Docker 就像一个移动的“集装箱”,它可以把我们的代码、运行环境、依赖库等等,全部打包在一起,形成一个独立的“容器”。无论你把这个容器放到 Windows、Mac、Linux,甚至云服务器上,它都能保证运行环境的一致性,就像把家搬到哪儿,都能喝到熟悉的咖啡一样!☕

而 Docker Desktop,就是我们在 Windows 和 Mac 上玩转 Docker 的最佳利器!它简单易用,功能强大,让我们可以在自己的电脑上轻松创建、管理、运行容器,大大提高了开发效率。

第一章:Docker Desktop 的安装与配置:一键到位,轻松起飞!

安装 Docker Desktop 就像安装一个普通的软件一样简单,只需要几步操作,就能搞定。

1. 下载安装包:

首先,我们需要从 Docker 官网下载对应操作系统的安装包。

2. 安装过程:

  • Windows: 双击下载的安装包,按照提示一步步操作即可。注意,安装过程中可能会提示你启用 Hyper-V 或 WSL 2,这是 Docker Desktop 运行的必要条件,按照提示启用即可。
  • Mac: 将下载的 .dmg 文件拖拽到 “Applications” 文件夹即可。

3. 启动 Docker Desktop:

安装完成后,启动 Docker Desktop。第一次启动时,可能会需要一些时间来初始化环境,请耐心等待。

4. 登录 Docker 账号:

启动后,Docker Desktop 会提示你登录 Docker 账号。如果没有账号,可以免费注册一个。登录账号后,你就可以访问 Docker Hub 上的各种镜像了。

5. 配置 Docker Desktop:

Docker Desktop 提供了一些配置选项,可以根据自己的需求进行调整。

  • Resources: 可以调整 Docker Desktop 使用的 CPU 和内存资源。如果你的电脑配置较高,可以适当增加资源,提高容器的运行速度。
  • File Sharing: 可以配置哪些目录可以被容器访问。默认情况下,你的用户目录是可以被容器访问的。
  • Networks: 可以配置 Docker 的网络设置。

用表格来个小结:

操作系统 安装步骤 注意事项
Windows 1. 下载安装包 2. 双击安装包,按照提示操作 3. 启用 Hyper-V 或 WSL 2 4. 启动 Docker Desktop 5. 登录 Docker 账号 确保你的 Windows 版本支持 Hyper-V 或 WSL 2。如果遇到问题,可以参考 Docker 官网的文档或搜索相关资料。
Mac 1. 下载安装包 2. 将 .dmg 文件拖拽到 “Applications” 文件夹 3. 启动 Docker Desktop 4. 登录 Docker 账号 确保你的 Mac 版本支持 Docker Desktop。如果遇到问题,可以参考 Docker 官网的文档或搜索相关资料。

第二章:Docker 镜像:容器的灵魂,万物皆可镜像!

镜像就像容器的“模板”,它包含了运行一个应用程序所需的所有东西:代码、运行时、系统工具、系统库、设置等等。我们可以从 Docker Hub 上下载各种现成的镜像,也可以自己制作镜像。

1. 从 Docker Hub 拉取镜像:

Docker Hub 是一个公共的 Docker 镜像仓库,上面有各种各样的镜像,例如 Ubuntu、CentOS、Node.js、Python 等等。我们可以使用 docker pull 命令从 Docker Hub 拉取镜像。

例如,要拉取 Ubuntu 镜像,可以执行以下命令:

docker pull ubuntu

2. 运行镜像:

拉取镜像后,我们可以使用 docker run 命令来运行镜像,创建一个容器。

例如,要运行 Ubuntu 镜像,可以执行以下命令:

docker run -it ubuntu /bin/bash

这条命令会创建一个 Ubuntu 容器,并进入容器的 bash 终端。-it 参数表示以交互模式运行容器,并分配一个伪终端。

3. 镜像的分层存储:

Docker 镜像采用分层存储的方式,每一层都是只读的。当我们修改镜像时,Docker 会在现有层之上创建一个新的可写层。这种分层存储的方式可以节省存储空间,并提高镜像的构建速度。

4. Dockerfile:构建自定义镜像的秘籍!

Dockerfile 是一个文本文件,包含了一系列指令,用于自动化构建 Docker 镜像。我们可以使用 Dockerfile 来定义镜像的基础操作系统、安装的软件包、运行的命令等等。

例如,以下是一个简单的 Dockerfile,用于构建一个 Node.js 应用程序的镜像:

FROM node:16

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["npm", "start"]

这个 Dockerfile 的作用如下:

  • FROM node:16:指定基础镜像为 Node.js 16。
  • WORKDIR /app:设置工作目录为 /app
  • COPY package*.json ./:复制 package.jsonpackage-lock.json 文件到工作目录。
  • RUN npm install:运行 npm install 命令,安装依赖。
  • COPY . .:复制所有文件到工作目录。
  • EXPOSE 3000:暴露 3000 端口。
  • CMD ["npm", "start"]:运行 npm start 命令,启动应用程序。

我们可以使用 docker build 命令来构建镜像。

例如,要构建一个名为 my-node-app 的镜像,可以执行以下命令:

docker build -t my-node-app .

用表格来个小结:

命令 作用
docker pull 从 Docker Hub 拉取镜像。
docker run 运行镜像,创建一个容器。
docker build 使用 Dockerfile 构建镜像。

第三章:Docker 容器:镜像的化身,代码的乐园!

容器是 Docker 的核心概念,它是镜像的一个运行实例。我们可以创建、启动、停止、删除容器,就像管理虚拟机一样。

1. 容器的生命周期:

容器的生命周期包括以下几个阶段:

  • 创建 (Created): 使用 docker create 命令创建容器,但容器尚未启动。
  • 运行 (Running): 使用 docker start 命令启动容器,容器开始运行。
  • 暂停 (Paused): 使用 docker pause 命令暂停容器的运行。
  • 停止 (Stopped): 使用 docker stop 命令停止容器的运行。
  • 删除 (Removed): 使用 docker rm 命令删除容器。

2. 容器的常用命令:

  • docker ps:列出正在运行的容器。
  • docker ps -a:列出所有容器,包括正在运行的和已停止的。
  • docker logs <container_id>:查看容器的日志。
  • docker exec -it <container_id> /bin/bash:进入容器的 bash 终端。
  • docker stop <container_id>:停止容器的运行。
  • docker rm <container_id>:删除容器。

3. 容器的数据持久化:Docker Volumes 的妙用!

容器的数据默认是存储在容器内部的,当容器被删除时,数据也会丢失。为了实现数据的持久化,我们可以使用 Docker Volumes。

Docker Volumes 可以将容器内部的目录映射到宿主机的目录,或者创建一个独立的 Volume。这样,即使容器被删除,数据也不会丢失。

4. 容器的网络:容器之间的沟通桥梁!

Docker 容器默认使用桥接网络,容器之间可以通过容器名或 IP 地址进行通信。我们也可以创建自定义网络,将容器连接到同一个网络中。

用表格来个小结:

| 命令 | 作用 |
| docker ps | 列出正在运行的容器。 and its function. |

第四章:Docker Compose:化繁为简,一键部署!

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。我们可以使用 Docker Compose 来定义应用程序的服务、网络和卷,然后使用一个简单的命令来启动整个应用程序。

1. Docker Compose 的安装:

Docker Compose 通常与 Docker Desktop 一起安装。如果你没有安装 Docker Compose,可以参考 Docker 官网的文档进行安装。

2. Docker Compose 文件:

Docker Compose 使用 YAML 文件来定义应用程序的服务、网络和卷。

例如,以下是一个简单的 Docker Compose 文件,用于定义一个 Node.js 应用程序和一个 MongoDB 数据库:

version: "3.9"
services:
  web:
    image: my-node-app
    ports:
      - "3000:3000"
    depends_on:
      - db
    environment:
      MONGODB_URI: mongodb://db:27017/mydatabase
  db:
    image: mongo:latest
    volumes:
      - db_data:/data/db
volumes:
  db_data:

这个 Docker Compose 文件的作用如下:

  • version: "3.9":指定 Docker Compose 文件的版本。
  • services:定义应用程序的服务。
    • web:定义 Node.js 应用程序服务。
      • image: my-node-app:指定使用的镜像为 my-node-app
      • ports: - "3000:3000":将容器的 3000 端口映射到宿主机的 3000 端口。
      • depends_on: - db:指定 web 服务依赖于 db 服务。
      • environment: MONGODB_URI: mongodb://db:27017/mydatabase:设置环境变量 MONGODB_URI
    • db:定义 MongoDB 数据库服务。
      • image: mongo:latest:指定使用的镜像为 mongo:latest
      • volumes: - db_data:/data/db:将容器的 /data/db 目录映射到名为 db_data 的 Volume。
  • volumes:定义 Volume。
    • db_data:定义名为 db_data 的 Volume。

3. Docker Compose 的常用命令:

  • docker-compose up:启动应用程序。
  • docker-compose down:停止应用程序。
  • docker-compose ps:列出应用程序的服务。
  • docker-compose logs <service_name>:查看服务的日志。

用表格来个小结:

| 命令 | 作用

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注