《循序渐进学Docker》——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](https://yqfile.alicdn.com/274c39301dddd10768457df6fcf6ca5f6f61db3b.png)
它和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](https://yqfile.alicdn.com/5a23e3cdf15fe9944d8bfbe3d0945ad950719329.png)
系统默认的用户名:root,密码:5iveL!fe,在界面的右上侧,输入后就可以体验gitlab了。
我们创建了一个项目,就可以像GitHub那样使用了,界面如图3-11所示。
3.4.3 项目管理系统——RedmineRedmine是一套跨平台的项目管理系统,它通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度。另外,它还集成了Wiki文档、版本控制、bug跟踪等功能。Redmine是项目管理不可或缺的好工具。
![478c9e46d06860624d1f247d2d002a83363890a9](https://yqfile.alicdn.com/478c9e46d06860624d1f247d2d002a83363890a9.png)
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-42.测试Redmine
Docker指令中,我们把Redmine的对外服务端口映射到10083,所以我们可以通过http://192.168.10.103:10083访问,界面如图3-12所示。
![f5c80a02c527f9403f38e8340382965fc9eacdb0](https://yqfile.alicdn.com/f5c80a02c527f9403f38e8340382965fc9eacdb0.png)
可以输入系统默认用户(用户名:admin,密码:admin)进行深入体验。
Docker笔记:Docker网络知识介绍 当我们的服务器成功安装docker并启动进程后,就会产生一个docker0的虚拟网桥,本质为Linux网桥(默认为桥接模式),使用的通信技术是Veth-pair技术. 当我们每启动一个容器,docker就给对应容器分配一个eth0,并能够桥接到docker0网卡。这个时候可以把docker0看作为路由器,每个容器可以看作为连接路由器的网络设备,docker0用来管理每个容器的和docker0通信的映射关系。
Docker在开发方面的应用 Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
相关文章
- docker什么命令启动服务?
- Docker-部署MongoDB
- 阿里云部署Docker(2)
- 2023年Docker在自动化测试中的实践应用
- Docker 推送镜像到hub.docker
- Docker:慕课网--第一个docker化的java应用
- Docker swarm 通过 docker-compose 部署应用
- 网络安全系列-三十九: 开源IDS/IPS/网络安全监控平台SELKS docker部署及问题处理
- docker for windows--Windows 10 家庭中文版 21H2 安装Docker Desktop初体验
- 在docker中安装代理服务器 SQUID | Linux代理服务器
- 一套不错的docker lnmp
- docker如何将运行中的容器保存为docker镜像?
- Docker容器(六)——创建docker私有化仓库
- Docker环境搭建与使用:docker配置镜像加速(已阿里云为例)
- 【Docker】 windows10 docker 使用
- 厌倦了安装数据库?改用 Docker
- docker容器启动后自动停止,dockerfile编写的容器启动后也是自动停止
- 《Docker技术入门与实战》——2.1 核心概念
- 《Docker技术入门与实战》——3.7 上传镜像
- ubuntu22.04下安装docker engine
- Ubuntu 18.04在已经安装Docker CE后如何安装NVIDIA-Docker,以使docker容器内可以使用宿主机显卡
- Docker安装Jenkins并配置GitHub
- 浅析如何解决终端输入长命令不换行覆盖(Docker容器内输入长命令折行覆盖)问题:如何设置docker容器tty终端窗口大小-Linux stty命令设置串口终端行列数
- 浅析Docker Volume理解:docker内文件系统是如何工作的、镜像启动容器是如何工作的、为什么要使用Volume、如何使用Volume、匿名卷与实名卷的区别
- Docker问题——ubuntu下彻底删除docker
- Docker 尝试安装rabbitmq实践笔记
- Ubuntu下Jenkins(docker)配置Docker远程启动
- manjaro docker install ros2 in raspberry pi4B 使用Docker安装ROS2 (ros-humble) 并开启对Wayland的支持