Docker for macOS 安装与使用新手教程

本篇文章将会为新手介绍Docker for macOS的快速入门方法,以在较短时间内完成Docker环境部署。

基础环境:macOS 10.15 + Docker Desktop

使用 Docker 的第一步当然是了解它,互联网上介绍 Docker 的资料太多了,这里不再赘述,不过想要快速了解它 Wikipedia 绝对是一个好去处。下面的内容都会针对了解 Docker 的运行机制但对如何使用感到困惑的小白。

先将最基本的某使用情形下所需的命令全部放出,以便查阅和明确学习目标。

docker pull [Image]
# Pull an image from Docker Hub
docker run -i -t -p 80:80 [IMAGE]
# Create and run a container with interaction and 80 port binded
docker ps -a
# List all containers
docker start -i [CONTAINER ID]
# Start a container
docker stop [CONTAINER ID]
# Stop a container
docker exec -i -t [CONTAINER ID] bash
# Run terminal in a container

最快速的上手方法即是从官方网站下载官方的安装程序进行安装。这里没有使用 HomeBrew,因为如果仅仅是想要安装 Docker 且没有 HomeBrew 的使用经验,HomeBrew 的操作更繁琐,耗费的时间也更长,遇到潜在错误的可能性也更大。

docker_new_1

安装完成之后会有一个新手教程等待着你,现在我们来简单地理解一下教程所说的东西。

docker_new_2

第一步就直接运行了一个 Docker Container,不过这个时候我们没必要理解命令语法,只要知道这一步是把构建用于新手教程 Image 的文件从 Git 上获取而已。教程还是十分贴心的,右侧已经打开了 Terminal,也无需担心存储路径的问题,总之就只要点击蓝色代码块,等待右侧执行完成然后点击下一步就行了。

docker_new_3

第二步就是构建 Image 了,可见构建的语句还是十分简洁的。这里这句话的意思是使用前面 clone 的文件使用当前目录下的 DockerFile(.)构建一个名为 “docker101tutorial”(”-t” 即指定名字)的 Image。这里末尾的点即代表当前目录,表示使用的是当前目录下的 DockerFile。

docker build -t docker101tutorial .

build的具体语法如下,具体的使用方法在 docker build 的官方文档 中有详细介绍。

docker build [OPTIONS] PATH | URL | -
docker_new_4

第三步就是运行一个 Container 了。这句话的意思就是通过 docker101tutorial 这个 Image 构建并运行一个后台运行(”-d”)的80端口与主机80端口绑定(”-p 80:80″)的名为 docker-tutorial 的 Container。

docker run -d -p 80:80 --name docker-tutorial docker101tutorial

run 的具体语法如下,具体的使用方法在 docker build 的官方文档 中有详细介绍。简单来说就是以一系列条件通过 Image 创建 Container 并开始运行。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker_new_5

第四步就是保存和分享自己制作的 Image 了,这样他人就可以快速得到你的运行环境。运行完成后就可以在 Docker Hub 上自己的账户中看到这个 Image 了。

docker_new_6

这时注意到有一个网页的教程弹出:

docker_new_7

注意到网址并不是官方网站,而是 localhost ,可见这个页面就是运行在 Docker 中的网页服务,实际上,你刚刚在新手教程中完成的一系列操作,结果就是构建了这样的一个网页服务器环境。

那么问题来了,如何获取现成的 Image 来运行服务端环境或者是获取到一个操作系统 Image 自己往里面安装服务程序呢?这时其实使用 pull 语句就行了,这里我就 pull 一下 Debian 系统:

docker_new_8

pull十分完美,默认会自动使用最新版的 Image。正当我继续兴冲冲地按照新手教程运行时:

docker_new_9

这里就有个坑了,和教程中不同的是,我们这里并不用键入 docker/ ,直接键入名称即可。

docker run -d -p 80:80 [IMAGE]
docker_new_10

看到这一串 Container ID 就代表运行成功了。创建的 Container 也可以在 GUI 中看到。

docker_new_11

由于新的系统没有任何线程,后台运行一旦开始就会退出。这里可以在创建的时候就使用 -i 参数(交互)和 -t 参数(附加进程),这样 Container 就可以立即在终端前台运行。

docker run -i -t -p 80:80 [IMAGE]
docker_new_12

如果没有加入 -i 参数和 -t 参数导致自动退出或者停止了 Container ,可以通过 Terminal 开始运行。

首先使用 ps 命令查看 Container ID

docker ps -a

记下想要启动的 Container 的 Container ID 然后使用 start 命令就可以启动了。

docker start -i [CONTAINER ID]
docker_new_14

到这里为止基于系统的 Container 就开始正常运行了。

如果想要在 Container 后台运行时进入终端,使用以下命令即可:

docker exec -i -t [CONTAINER ID] bash

其实可以直接使用 Docker Desktop 也可以创建 Container ,点击想要运行的 Image 后的 Run 即可。

docker_new_15

而且还能通过 GUI 进行详细配置:

docker_new_16

完善配置,或者直接点击 Run 都可以。

docker_new_17

Container 就开始运行了。

docker_new_18

和使用上面命令创建的 Container 不同,这里自动创建的 Container 是可以后台运行的,并且可以通过 Docker Desktop 进行开始、停止、从 CLI 启动等一系列操作。

掌握这些方法以后,作为使用者,我们已经已经可以在 Docker 上实现大部分的需求了。我将在下一篇文章中介绍在 Docker 上搭建 LAMP 环境的方法以及 Docker Compose 的使用方法。

留下评论