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

简介: 《小团队web技术搭建》(二)环境和工具的准备-第二部分
欢迎关注系列专栏《小团队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技术搭建》
相关文章
|
12天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
92 17
Selenium:强大的 Web 自动化测试工具
|
20天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
38 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
1月前
|
人工智能 前端开发 计算机视觉
Inpaint-Web:纯浏览器端实现的开源图像处理工具
在刷短视频时,常看到情侣在景区拍照被路人“抢镜”,男朋友用手机将路人“P”掉,既贴心又有趣。最近我发现了一个纯前端实现的开源项目——inpaint-web,可在浏览器端删除照片中的部分内容,非常酷。该项目基于 WebGPU 和 WASM 技术,支持图像修复与放大,已在 GitHub 上获得 5.1k Star。项目地址:[GitHub](https://github.com/lxfater/inpaint-web)。
60 3
 Inpaint-Web:纯浏览器端实现的开源图像处理工具
|
23天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
32 6
|
1月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
46 3
|
1月前
|
SQL 负载均衡 安全
安全至上:Web应用防火墙技术深度剖析与实战
【10月更文挑战第29天】在数字化时代,Web应用防火墙(WAF)成为保护Web应用免受攻击的关键技术。本文深入解析WAF的工作原理和核心组件,如Envoy和Coraza,并提供实战指南,涵盖动态加载规则、集成威胁情报、高可用性配置等内容,帮助开发者和安全专家构建更安全的Web环境。
63 1
|
1月前
|
负载均衡 监控 算法
论负载均衡技术在Web系统中的应用
【11月更文挑战第4天】在当今高并发的互联网环境中,负载均衡技术已经成为提升Web系统性能不可或缺的一环。通过有效地将请求分发到多个服务器上,负载均衡不仅能够提高系统的响应速度和处理能力,还能增强系统的可扩展性和稳定性。本文将结合我参与的一个实际软件项目,从项目概述、负载均衡算法原理以及实际应用三个方面,深入探讨负载均衡技术在Web系统中的应用。
76 2
|
1月前
|
前端开发 JavaScript 开发者
构建响应式设计的现代Web应用:实用技巧与工具
【10月更文挑战第24天】本文介绍了构建响应式Web应用的实用技巧和工具,涵盖流体网格布局、弹性图片、CSS媒体查询、CSS Grid和Flexbox、响应式导航菜单、图片和字体的响应式处理,以及测试和调试工具。掌握这些技能将帮助开发者提升用户体验和项目适应性。
|
1月前
|
缓存 安全 前端开发
构建高效Web应用的五大关键技术
【10月更文挑战第42天】在数字化浪潮中,Web应用已成为企业与用户互动的重要桥梁。本文将深入探讨提升Web应用性能和用户体验的五项核心技术,包括前端优化、后端架构设计、数据库管理、安全性增强以及API开发的最佳实践。通过这些技术的应用,开发者可以构建出更快、更稳定且更安全的Web应用,满足现代网络环境的需求。
|
1月前
|
人工智能 安全 物联网
区块链技术的未来展望:去中心化金融(DeFi)与Web 3.0的融合
区块链技术的未来展望:去中心化金融(DeFi)与Web 3.0的融合
下一篇
DataWorks