《循序渐进学Docker》——3.4 再次体验Docker

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介:

本节书摘来自华章出版社《循序渐进学Docker》一书中的第3章,第3.4节,作者李金榜 尹烨 刘天斯 陈纯,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 再次体验Docker

我们介绍了如何在Ubuntu系统下安装Docker,并且指出Ubuntu是对Docker支持最好的系统。这一节我们就再次介绍几个例子,让大家更深入地体验Docker。

3.4.1 再看个人博客WordPress的搭建

还记得第2章在Windows环境下通过两条Docker指令搭建WordPress吗?现在切换到Ubuntu系统下,再来看看这两条指令是否有效。

打开Ubuntu的命令行终端,依次执行这两条Docker指令。

$ docker run --name db --env MYSQL_ROOT_PASSWORD=example -d mariadb
$ docker run --name MyWordPress --link db:mysql -p 8080:80 -d wordpress

由于需要从网上下载几百兆的文件,请耐心等待指令执行完成。

然后通过ifconf?ig命令查看本机的IP地址。比如,我的地址是192.168.10.103,在浏览器中输入http://192.168.10.103:8080,出现如图3-9所示的界面。


274c39301dddd10768457df6fcf6ca5f6f61db3b

它和Windows下WordPress配置界面完全一样。

在Windows和Ubuntu不同系统环境下,我们使用相同的Docker指令,就可以把WordPress安装成功。这体现了Docker非常优良的跨平台的特性。

3.4.2 开源的版本控制利器——GitLab

作为一名程序员,都应该知道“程序员的维基百科全书”——GitHub。它提供Web化的界面,很方便地对大型项目的代码进行协作开发和版本控制。但它也存在一些缺点,如托管的项目必须公开代码,如果建立私有仓库(代码不公开),需要收费;在国内访问GitHub有时会出现访问不了的情况;
等等。

GitLab是一个类GitHub的开源的代码管理工具,它实现了GitHub大部分功能。它的优势是可以实现本地部署,搭建公司内部的版本控制系统。

下面,我们还是利用Docker,看看如何搭建GitLab服务。

1.搭建GitLab服务

我们使用sameersbn/docker-gitlab来搭建GitLab服务,项目地址为https://github.com/sameersbn/docker-gitlab。它的运行环境由如下三部分组成:

postgresql数据库

redis缓存服务

gitlab服务

我们使用Docker命令依次启动这三个服务:

启动postgresql:

docker run --name gitlab-postgresql -d \
  --env 'DB_NAME=gitlabhq_production' \
  --env 'DB_USER=gitlab' --env 'DB_PASS=password' \
  sameersbn/postgresql:9.4-12

启动redis:

docker run --name gitlab-redis -d sameersbn/redis:latest

启动gitlab:

docker run --name gitlab -d \
  --link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
  --publish 10022:22 --publish 10080:80 \
  --env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
  --env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
    sameersbn/gitlab:8.4.4

这三条Docker指令与安装WordPress的Docker指令和参数基本一样,唯一不同的是,传递的环境变量和映射的端口更多。从这里我们发现了一个特点:Docker指令中的参数标示符可以重复使用,比如,如果传递多个环境变量,就连续使用多个“--env”。

2.测试GitLab

上一节,我们已经搭建好了GitLab服务,接下来看看如何使用它。

首先通过ifconf?ig命令查看本机IP,然后通过http://192.168.10.103:10080就可以访问到如图3-10所示的界面。


5a23e3cdf15fe9944d8bfbe3d0945ad950719329

系统默认的用户名:root,密码:5iveL!fe,在界面的右上侧,输入后就可以体验gitlab了。

我们创建了一个项目,就可以像GitHub那样使用了,界面如图3-11所示。

3.4.3 项目管理系统——Redmine

Redmine是一套跨平台的项目管理系统,它通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度。另外,它还集成了Wiki文档、版本控制、bug跟踪等功能。Redmine是项目管理不可或缺的好工具。


478c9e46d06860624d1f247d2d002a83363890a9

1.搭建Redmine服务

搭建Redmine服务,我们使用sameersbn/redmine镜像,项目地址为https://github.com/sameersbn/docker-redmine

两条Docker指令就可以搞定。

第一条指令:

docker run --name=postgresql-redmine -d \
  --env='DB_NAME=redmine_production' \
  --env='DB_USER=redmine' --env='DB_PASS=password' \
  sameersbn/postgresql:9.4-12

第二条指令:

docker run --name=redmine -d \
  --link=postgresql-redmine:postgresql --publish=10083:80 \
  --env='REDMINE_PORT=10083' \
  sameersbn/redmine:3.2.0-4

2.测试Redmine

Docker指令中,我们把Redmine的对外服务端口映射到10083,所以我们可以通过http://192.168.10.103:10083访问,界面如图3-12所示。


f5c80a02c527f9403f38e8340382965fc9eacdb0

可以输入系统默认用户(用户名:admin,密码:admin)进行深入体验。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
Ubuntu Docker 容器
《循序渐进学Docker》——3.3 在Ubuntu下安装Docker
本节书摘来自华章出版社《循序渐进学Docker》一书中的第3章,第3.3节,作者李金榜 尹烨 刘天斯 陈纯,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 3.3 在Ubuntu下安装Docker 通过GNU GRUB选择进入Ubuntu系统,配置好网络。
1634 0
|
Ubuntu Linux Docker
《循序渐进学Docker》——第3章 Ubuntu下使用Docker 3.1 Docker的运行平台
本节书摘来自华章出版社《循序渐进学Docker》一书中的第3章,第3.1节,作者李金榜 尹烨 刘天斯 陈纯,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 第3章 Ubuntu下使用Docker 第2章我们介绍了在Windows下如何搭建一个Docker运行环境。
2456 0
|
关系型数据库 Apache 数据库
《循序渐进学Docker》——2.2 利用Docker搭建个人博客
本节书摘来自华章出版社《循序渐进学Docker》一书中的第2章,第2.2节,作者李金榜 尹烨 刘天斯 陈纯,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.2 利用Docker搭建个人博客 WordPress是一款功能强大的个人博客系统。
3673 0
|
虚拟化 Docker Windows
《循序渐进学Docker》——第2章 初步体验 Docker 2.1 Windows下安装Docker
本节书摘来自华章出版社《循序渐进学Docker》一书中的第2章,第2.1节,作者李金榜 尹烨 刘天斯 陈纯,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 第2章 初步体验Docker 上一章概括性地介绍了Docker的发展历史、组织结构、功能特性和使用场景等方面的内容。
2593 0
|
运维 测试技术 开发者
《循序渐进学Docker》——1.3 为什么使用Docker
本节书摘来自华章出版社《循序渐进学Docker》一书中的第1章,第1.3节,作者李金榜 尹烨 刘天斯 陈纯,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 1.3 为什么使用Docker 当深入了解Docker后,你想在公司或部门推广Docker,就需要给大家讲明白为什么要使用Docker。
3620 0
|
Linux 虚拟化 iOS开发
《循序渐进学Docker》——1.2 Docker的结构与特性
本节书摘来自华章出版社《循序渐进学Docker》一书中的第1章,第1.2节,作者李金榜 尹烨 刘天斯 陈纯,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 1.2 Docker的结构与特性 通过上一小节的介绍,大家对Docker有一个初步的了解。
2607 0
|
Java 测试技术 Android开发
《循序渐进学Docker》——第一部分 Part 1 基础篇 第1章 全面认识Docker 1.1 Docker是什么
本节书摘来自华章出版社《循序渐进学Docker》一书中的第1章,第1.1节,作者李金榜 尹烨 刘天斯 陈纯,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 第一部分 Part 1 基 础 篇 第1章 全面认识Docker 第2章 初步体验Docker 第3章 Ubuntu下使用Docker 第4章 Docker的基础知识 第1章 全面认识Docker 欢迎来到Docker的世界。
5019 0
|
6天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
129 15
|
6天前
|
网络协议 API Docker
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
39 23
|
1月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
225 93