我在使用 Linux 的过程中发现很多软件都被人们用 Docker 打包好了,据说这样可以省去很多配置软件和软件依赖的时间。不过因为我不会用 Docker 所以一直没尝试过。直到前段时间才学习了一下怎么使用 Docker ,这里是我学习记录的笔记。

Docker 是一种为了解决 Linux 上的软件依赖而发明的技术。我在很久之前就听说了,也遇到了很多使用 Docker 部署的软件。不过最近才学习怎么使用。不同的 Linux 发行版安装 Docker 的方法有一些不同,建议大家参考官方手册之后自己安装。

安装好了之后可以开始执行

$docker run hello-world

这时软件会检查本地有没有镜像文件,如果没有就从镜像文件的仓库里面下载下来。下载之后再根据这个镜像文件生成容器文件并运行容器。这时输入

$docker container ls

可以查看正在运行的容器。注意列出的容器的 ID ,因为很多操作都需要使用容器的 ID 。比如终止容器运行就使用

$docker container kill [容器的 ID]

终止容器运行之后如果要重新启动这个容器则使用

$docker container start [容器的 ID]

如果要完全删除容器的文件则使用

$docker container rm [容器的 ID]

当然终止容器还可以用这个命令

$docker container stop [容器的 ID]

介绍几个基本概念。在 Docker 中的镜像、容器都是文件。镜像就像是一个模板,容器则是根据模板生成的实际使用的文件。镜像中包含软件运行所需要的各种文件,容器不仅包含这些运行依赖的文件还有各种运行产生的数据。Docker 还有各种命令可以帮助你创建自己的镜像,并且有一个网站存储各种公开的镜像。存储镜像的网站就是 Docker 的镜像仓库,如果你创建了一个镜像也可以发布到这个仓库中。 Docker 的镜像大多数都可以在 Docker 的镜像仓库中找到。如果你想使用一个镜像,下载镜像的命令是

$docker pull [用户名]/[镜像名]:[版本]

不过, Docker 默认使用官方镜像仓库。在国内这个仓库的访问速度感人。推荐大家使用各种镜像网站访问。比如像这样使用百度的镜像网站

$docker pull mirror.baidubce.com/[用户名]/[镜像名]:[版本]

想要根据下载的镜像生成容器,可以使用

$docker container run [镜像的名字]

如果想看容器里面的输出信息,可以使用

$docker container logs [容器的 ID]

查看所有的容器,使用的命令是

$docker container ls --all

这样就会列出所有的容器 ID ,包括了已经停止运行的容器的 ID。

Docker 的命令中还有一些常用的参数,这里举一些例子。

# -it 这个参数会让你的终端的内容传给容器中执行
$docker container run -it [镜像] 
# -p 这个参数会将容器中的端口映射到本地计算机
$docker container run -p 本地端口:容器端口 [镜像]
# --rm 这个参数使容器停止之后被自动删除
$docker container run --rm [镜像]
# 在容器后面加上一条命令,这条加上的命令会在容器启动后自动执行
$docker container run [镜像] 命令

这些都是基本的一些命令,不过对于普通使用来说已经完全足够了。只要搞清楚了 Docker 的基本设计逻辑,想要上手使用还是很容易的。