Docker 傻瓜入门

初学者在 Linux 安装软件服务时,一般的流程是这样的:

  • 在 google/baidu 搜索,xxx 安装教程
  • 根据教程下载软件包 xxx.tar.gz ,解开出一堆文件也不知道这些都是干啥的
  • 接着按教程修改一些文件配置
  • 最后可能是 make / make install
  • 运气好的话,做完以上步骤就 ok 了,然而这样的好运气往往不常有,经常出现莫名的问题导致无法成功安装

这时就需要使用新时代的解决方案 docker
接下来我们以 mysql 为例,看看如何使用 docker 来方便的安装并启动 mysql 服务

安装 docker

Linux 系统内一条命令一键安装

curl -fsSL https://get.docker.com | sh

如果发现 https://get.docker.com 这地址打不开的话,可以改用 Daocloud 提供的国内地址试试

curl -sSL https://get.daocloud.io/docker | sh

如果需要在你的 Windows / Mac 个人电脑上安装 docker,可以参考 Daocloud 提供的各平台的安装包,直接下载安装即可
http://get.daocloud.io/#install-docker-for-mac-windows

下载软件

比如我们这里是系统利用 docker 来运行 mysql 服务,那就先将 mysql 下载到本地,一条命令搞定

docker pull mysql:5.7

等待一段时间,下载完成后即可,下载得到被称为 镜像
可以通过命令查看目前主机上有哪些已下载的镜像

docker images

如果要下载其他软件,将以上命令中的 mysql 替换为对应的镜像名称即可
例如:docker pull redisdocker pull postgres

那怎么才能知道自己想使用的软件是否可以通过 docker pull 下载到呢?
打开 https://hub.docker.com 在页面上直接搜索你要的软件名称,能搜到的就能下载

运行软件

一条命令就可以启动 mysql 了

docker run -e MYSQL_ROOT_PASSWORD=mypasswd -p 3306:3306 -d mysql

这条命令运行后会生成一个 容器
可以通过命令查看目前主机上有哪些容器

docker ps -a

然后我们使用以下参数连接 mysql 服务器

host: 127.0.0.1
port: 3306
username: root
password: mypasswd

如果能正常连接上,说明我们的 mysql 服务已经在 docker 上成功运行起来的

接下来我们挨个解说下上面那条 docker run 命令的参数
-e MYSQL_ROOT_PASSWORD=mypasswd: 设置默认的 root 用户密码为 mypasswd
-p 3306:3306: 打通容器与主机之间的网络端口,即访问 127.0.0.1 的 3306 端口就等同于访问容器内的 3306 端口了(: 前是主机端口,之后的是容器端口)
-d: deamon 的缩写,mysql 服务会在后台以守护进程的形式一直运行

总结一下

只要简单的三句命令轻松搞定

curl -fsSL https://get.docker.com | sh
docker pull mysql
docker run -e MYSQL_ROOT_PASSWORD=mypasswd -p 3306:3306 -d mysql

备注:

本文是适用于初学者的极简教程,旨在于帮助从没接触过 docker 的朋友快速入门和理解。
为了方便理解,其中部分概念没有以最准确的方式表达,而是以通俗 “傻瓜” 的方式,如:

  • 下载软件,准确的说法应该是 拉取包含了所需软件的系统镜像到本地
  • docker pull 的时候可以带上镜像的 tag 来指定版本,这些就没细说了。
  • 打通端口 应该叫作 端口映射

推荐阅读更多精彩内容