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

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

docker build -t docker101tutorial .

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

docker build [OPTIONS] PATH | URL | -

第三步就是运行一个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...]

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

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

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

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

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

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

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

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

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

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

首先使用ps命令查看Container ID

docker ps -a

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

docker start -i [CONTAINER ID]

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

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

docker exec -i -t [CONTAINER ID] bash

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

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

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

Container就开始运行了。

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

掌握这些方法以后,作为使用者,我们已经已经可以在Docker上实现大部分的需求了。

一条评论

  1. amazing introduction. we are desperate to learn more.

留下评论