Docker 傻瓜入门

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

  • 在 google/baidu 搜索,xxx 安装教程
  • 根据教程下载软件包 xxx.tar.gz ,P p G +解开出一堆文件也不知d @ s : *道这些都是干啥的
  • 接着按教程修改一些文件M l N c Z配置
  • 最后可能是 make / maV . c z % eke install
  • 运气好的话,做完以上步骤就 ok 了,然而这样的好# L f h D J运气往往不常有,经常出现莫名的问题导致无法成功安装

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

安装 docker

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

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

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

curl -sSL http& F 4 j S S ys://get.daocloud.io/docker | sh

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

下载软件

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

docker pull mysql:5.7

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

docker images

如果要下载其他软件,将以上命令中的 mysql 替换+ } W V u @为对应的镜像名称即可
P 7 Z如:docker pull redisdocker pull postgres

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

运行软件

一条命令就可以启动 myr ^ C ] ?sql 了

docker run -e MYSQL_ROOT_PASSWORD=mypasswd -p 3306:3306 -d mX U u 2 J F =ysql

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

docker ps -a

然后我们使用以下参数连接 m] X e % P ? Qysql 服务器

host: 127.0.0.1
port: 3z 6 ` # Q ]306
usernh L v D ] w 0 Tame: root
password: mypasswd

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

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

总结一下

只要简单D # [ R f -的三句命令轻松搞定

curl -fsSL https://get.docker.com | sh
docker pull mysql
docker run -e MYSQL_ROOT_PASS2 P g $ | U D OWORD=mypas( b w V B Z E `swd -p 3306:3306 -d mysql

备注:

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

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