《小团队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技术搭建》
相关文章
|
3天前
|
安全 网络协议 网络安全
【Docker项目实战】使用Docker部署web-check网站分析工具
【4月更文挑战第20天】使用Docker部署web-check网站分析工具
62 1
|
1天前
|
存储 JSON JavaScript
Web存储与传输:技术的背后
Web存储与传输:技术的背后
|
3天前
|
存储 安全 数据安全/隐私保护
Web应用程序的会话管理是一种跟踪和识别特定用户与Web服务器之间交互的技术
【5月更文挑战第12天】Python Web开发中,会话管理用于跟踪用户与服务器交互,如Flask框架提供的内置功能。以下是一个简单示例:安装Flask后,设置应用密钥,通过session读写用户状态。例如,创建一个显示和设置用户名称的Web应用,用户提交的名字将保存在会话中。在生产环境中,应安全存储密钥,如使用环境变量。扩展会话管理可借助第三方库实现更多功能,但可能需更多配置。
214 2
|
3天前
|
前端开发 搜索推荐 安全
AJAX和CSR(客户端渲染)是Web开发中常用的两种技术
【5月更文挑战第8天】AJAX提升用户体验,减轻服务器压力,但对搜索引擎不友好且增加开发复杂度,易引发安全问题。CSR提供快速响应和交互性,改善用户体验,但首屏加载慢,搜索引擎支持不足,同样面临安全挑战。两者各有适用场景,需按项目需求选择。
15 0
|
3天前
|
存储 前端开发 安全
13:会话跟踪技术Session的深度应用与实践-Java Web
13:会话跟踪技术Session的深度应用与实践-Java Web
34 3
|
3天前
|
存储 前端开发 搜索推荐
12:会话跟踪技术Cookie的深度应用与实践-Java Web
12:会话跟踪技术Cookie的深度应用与实践-Java Web
31 4
|
3天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。
|
3天前
|
前端开发 JavaScript UED
【专栏:HTML 与 CSS 前端技术趋势篇】Web 性能优化:CSS 与 HTML 的未来趋势
【4月更文挑战第30天】本文探讨了CSS和HTML在Web性能优化中的关键作用,包括样式表压缩、选择器优化、DOM操作减少等策略。随着未来趋势发展,CSS模块系统、自定义属性和响应式设计将得到强化,HTML新特性也将支持复杂组件构建。同时,应对浏览器兼容性、代码复杂度和性能功能平衡的挑战是优化过程中的重要任务。通过案例分析和持续创新,我们可以提升Web应用性能,创造更好的用户体验。
|
3天前
|
前端开发 JavaScript 搜索推荐
【专栏:HTML 与 CSS 前端技术趋势篇】HTML 与 CSS 在 Web 组件化中的应用
【4月更文挑战第30天】本文探讨了HTML和CSS在Web组件化中的应用及其在前端趋势中的重要性。组件化提高了代码复用、维护性和扩展性。HTML提供组件结构,语义化标签增进可读性,支持用户交互;CSS实现样式封装、布局控制和主题定制。案例展示了导航栏、卡片和模态框组件的创建。响应式设计、动态样式、CSS预处理器和Web组件标准等趋势影响HTML/CSS在组件化中的应用。面对兼容性、代码复杂度和性能优化挑战,需采取相应策略。未来,持续发掘HTML和CSS潜力,推动组件化开发创新,提升Web应用体验。
|
3天前
|
开发框架 JavaScript 前端开发
【JavaScript 与 TypeScript 技术专栏】TypeScript 在 Web 开发中的前沿应用
【4月更文挑战第30天】TypeScript在Web开发中日益重要,以其强大的类型系统提升代码质量,支持组件化开发,与React、Vue、Angular等框架良好集成。在大型项目管理中,TypeScript助于代码组织和优化,提高团队协作效率。此外,它提升开发体验,提供智能提示和错误检测。众多成功案例证明其前沿应用,未来将在Web开发领域持续发挥关键作用。