作者:SHERlocked93
原文链接:https://segmentfault.com/a/1190000024550704
在下最近遇到要在服务器上安装 Mysql、Nginx、EasyMock 等工具的场景,这里记录一下我使用 Docker 安装的过程,希望也能在类似的场景中帮助到大家~
本文前备知识需要一些 Linux 的一些基本命令,推介先看一下 这篇文章。
CentOS 版本: 7.6
Nginx 版本: 1.16.1
Docker 版本: 19.03.12
你多学一样本事,就少说一句求人的话
1. 介绍
1.1 出现的原因
前后端开发到测试到生产的过程中,经常会遇到一个问题,明明我在本地跑没问题,为什么到测试环境或者生产环境就报错了了呢,常常这是因为开发、测试、生产的环境与配置不同导致的。
折腾过环境配置的人都明白其中麻烦,换一台系统、虚拟机、机器,就又要重来一次,费力费时。由于环境和配置的原因,各种奇奇怪怪因为环境和配置的 Bug,总是像打地鼠游戏里面的地鼠一样不断冒出来
![adeeb8e24f4f7ee7b4cd73e4d10fda84.png](https://img-blog.csdnimg.cn/img_convert/adeeb8e24f4f7ee7b4cd73e4d10fda84.png)
Docker 对这个问题给出了一个很好的解决方案,通过镜像将除了系统之外所需要的系统环境由下而上打包,达到服务跨平台的无缝运作。也就是说,安装的时候,把特定的环境一模一样地搬过来,从而解决「在我的电脑上能跑,在 xx 环境就跑不了」的情况。
另外一个重要的原因,就是轻量,基于容器的虚拟化,Docker 的镜像仅包含业务运行所需的 runtime 环境,一个 CentOS/Ubuntu 基础镜像仅 170M,因为轻量一个宿主机可以轻松安装数百个容器。
1.2 是什么
Docker 是基于 Go 语言实现的云开源项目,从 2013 年发布到现在一直广受关注。Docker 可以让你像使用集装箱一样快速的组合成应用,并且可以像运输标准集装箱一样,尽可能的屏蔽代码层面的差异。它将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。
程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
本文就不对比虚拟机跟 Docker 的区别和优劣了,每个文章都有,说烂了,想了解的话可以百度一下 ,我这里就不多说了,下面直接看看怎么安装怎么用起来吧。
2. 安装 & 配置
2.1 Mac 下安装
在下直接使用 Homebrew Cask 来安装,Mac 下:
# Homebrew 安装$ braw cask install docker
即可,安装完输入命令,直接报错!
➜ ~ dockerzsh: command not found: docker # 报错
遇到这个报错别担心,安装完之后要在应用列表里面双击 Docker 应用,输入密码之后就可以使用这个命令了 。
2.2 CentOS 下安装
Docker 要求 CentOS 版本必须在 6.5 及以上才可以安装。
# 安装$ sudo yum install yum-utils device-mapper-persistent-data lvm2$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo$ sudo yum install docker-ce# 开启 Docker$ sudo systemctl start docker
在 Windows 上可以直接下载安装包来安装,或者 Mac 上不使用 Homebrew 也可以去官网直接下载安装包来安装,百度一下到处都是安装方法,其他的就不用多说。
3. 简单配置并跑起来
3.1 配置镜像加速
在 MacOS 的 Docker 配置 Perferences -> Docker Engine 或者 Windows 的 Settings -> Deamon 中的 JSON 中增加一项 registry-mirrors 如下
![b01856e10bd9ff41f7801c40efa8c8bc.png](https://img-blog.csdnimg.cn/img_convert/b01856e10bd9ff41f7801c40efa8c8bc.png)
配置完之后在命令行中 docker info 就可以查看到我们配置的镜像加速地址了。
➜ ~ sudo docker info... Registry Mirrors: https://reg-mirror.qiniu.com/ http://hub-mirror.c.163.com/ https://registry.docker-cn.com/...
如果你的系统的 Docker 没有客户端,比如 CentOS 中,可以直接修改 deamon 配置文件: