《小团队web技术搭建》(二)环境和工具的准备-第二部分

1,800 阅读5分钟

欢迎关注系列专栏《小团队web技术搭建》

《小团队web技术搭建》(一)环境和工具的准备-第一部分
《小团队web技术搭建》(二)环境和工具的准备-第二部分
《小团队web技术搭建》(三)环境和工具的准备-第三部分
《小团队web技术搭建》(四)虚拟机的安装使用
《小团队web技术搭建》(五)项目的简单部署方式
《小团队web技术搭建》(六)自动化部署方式(CI/CD)(一)
《小团队web技术搭建》(七)自动化部署方式(CI/CD)(二)
持续更新中...

上一篇 文章介绍了服务器和域名的购买和配置,本篇讨论Docker的基本使用和命令,以及在服务器上基于Docker安装一些团队开发所需的基本服务。

Docker简介

基本概念

Docker是一个开源的容器引擎,通俗的说是软件集装箱化工具。

开发者可以将自己开发所需的的环境描述成一个依赖文件并发布到平台上(有点像Node里的包管理工具npm),我们称之为镜像. 别人可以直接下载这些镜像并“实例化”成为自己所需的环境,这个“实例”我们称之为容器

Why Docker?

环境“迁移”的痛点

很多运维人员或者开发者在项目需要迁移到另一台服务器时,会遇到这样的问题:很多环境需要一个一个重新下载安装,安装完成后因为环境的版本问题还可能会导致各种兼容问题。

特别是频繁的迁移或者部署新机器时,这过程会耗费很多精力时间。如果能有个东西来处理把整个环境也“迁移”过去,这问题变得就非常简单,这就是Docker出现的最佳原因。

容器的隔离性

当然,有了这些Docker容器,使得不同项目所需某些环境版本不同的问题也迎刃而解,因为容器之间是完全隔离的。

例如你一个旧项目要求Node版本是小于4.0,同时这台机器上又有新项目要求Node版本大于10.0,这时你只需要把项目放到不同的Docker容器里并运行对应的Node版本即可,而不需要每次在运行项目时切换Node版本。

Docker安装和使用

有了云服务器后,我们开始登录并使用它安装一些环境。

安装Docker

推荐使用现成的一键安装脚本,当然你可以参考别的教程手动安装。

使用阿里云提供的镜像文件安装并耐心等待:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

查看是否已安装完成:

docker --version

设置开机启动Docker:

systemctl enable docker

启动docker:

systemctl start docker

设置国内镜像源

国内网络拉取镜像会比较慢,我们需要改成国内源(有合适网络条件的可跳过这一步骤),这样docker拉取镜像会快一些(类似于node的cnpm)。

修改一个配置文件(vilinux的编辑器,不熟悉的同学可自行查找教程学习它的基本使用):

vi /etc/docker/daemon.json

内容如下:

{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}

重启docker并查看镜像源是否设置成功:

systemctl restart docker
docker info

安装和启动gitlab

技术团队的协作少不了代码版本管理。后面介绍CI/CD的文章也会用到gitlab,作为业务代码仓库管理工具及CI工具,团队的代码通过git上传到你这台服务器的gitlab服务,所以本篇先介绍如何安装gitlab

Docker拉取最新版本的gitlab,此镜像较大,请耐心等待:

docker pull gitlab/gitlab-ce

查看镜像:

docker images

复制一下images的IMAGE ID放到下方命令的最后面启动一个容器:

docker run -d -p 443:443 -p 8082:80 -p 222:22 --name=gitlab --restart=always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab 9a53eb68aeeb

查看该容器是否已运行:

docker ps

在浏览器访问gitlab,地址是你服务器ip:8082, 如http://192.168.0.1:8082,首次访问需修改密码,超级管理员用户名是root

gitlab的启动和初始化需要一段时间,当你访问失败时,可以等待一两分钟后再尝试

设置好密码后使用root用户登录

这样gitlab的安装就算完成,你的团队可以在上面创建Group和项目并上传代码了。

安装和启动Nginx

nginx是主流的web服务器和反向代理服务器,我们使用它来统一管理云服务器里web服务。

使用docker安装nginx:

docker pull nginx

启动一个nginx容器运行nginx服务:

docker run --name nginx -p 8080:80 -d nginx

在浏览器访问,查看nginx是否已启动,地址是你的服务器ip:8080, 你也可以根据需要再在上一步设置端口,一般是80(对应http)或者8080(对应https):

上面步骤完成后,nginx仍然是默认的配置(本系列后面的文章会介绍到nginx的一些配置),并没有其他服务配置,所以访问nginx服务地址时是显示nginx默认的文件(Welcome to nginx! ...)

其他

当然你可以按上面对docker的使用示例,安装你所需要的其他镜像,如:Node mysql、mongo、java、php,但这些语言环境往往是在项目里面再做配置和自动拉取,以区分版本和隔离。后面的文章也有所提及。

下一篇介绍团队协作中可能需要的非技术类工具或平台,用于记录和管理团队文档、项目生命周期、产品原型和设计等等。

感谢阅读!欢迎关注系列专栏《小团队web技术搭建》