使用Docker快速搭建自己的开发环境(使用docker快速搭建自己的开发环境)

难免有时候需要重新安装系统,每次重新安装系统,有些软件需要重新安装、配置N多软件,饭都吃了几顿,都没有安装完。可以使用docker容器的方式,进行快速搭建。如果使用虚拟机,存储在非系统盘,即便重装系统,只需要安装虚拟机软件,导入虚拟机文件,即可快速启动一个开发环境

下面为我在虚拟机中安装的一部分容器,2core 2G ram。

  • [ghost]
  • [Nginx-ui]
  • [gitness(git)]
  • [minio]
  • [portainer]
  • [elasticsearch]
  • [postgres]
  • [redis]
  • [RabbitMQ]
  • [MySQL]

Ghost – 博客平台

首先,我们将使用Ghost搭建一个博客平台。用来记录笔记,存储本地。

为了本地使用域名访问,增加环境变量-e url=http://blog.x.cn。域名为本地局域网dns解析。

docker run -d --name ghost -e NODE_ENV=development -e database__connection__filename='/var/lib/ghost/content/data/ghost.db' -e url=http://blog.x.cn --restart always -p 3001:2368 ghost:alpine

nginx UI – Nginx管理工具

接下来,我们使用Nginx UI来管理Nginx。配置所有服务统一从nginx,nginx-ui可以通过web页面进行配置虚拟机。

docker run -dit --name=nginx-ui --restart=always -e TZ=Asia/Shanghai -v /data/nginx/nginx:/etc/nginx -v /data/nginx/nginx-ui:/etc/nginx-ui -v /data/nginx/root/html:/root/html -v /data/nginx/root/cert:/root/cert -p 80:80 -p 443:443 uozi/nginx-ui:latest

Gitness – Git仓库管理工具

为了方便管理代码仓库,我们使用Gitness。本地git仓库。任何代码都可以推到本地备份起来。

docker run -d -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock -v /data/gitness:/data --name gitness --restart always harness/Gitness

Minio – 对象存储服务

我们还需要一个对象存储服务,这里选择Minio。Windows可以使用rclone挂载桶到目录。对于常用的软件、图片、视频、配置文件等。可以使用Minio进行存储,快速存快取。

docker run -d --name minio --publish 9000:9000 --publish 9001:9001 --env MINIO_ROOT_USER="minioadmin" --env MINIO_ROOT_PASSWORD="minioadmin" --volume /data:/data --restart always bitnami/minio:latest

Portainer – Docker容器管理工具

为了方便管理Docker容器,我们使用Portainer。通过网页管理Docker。

docker run -d -p 9010:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer:/data --restart=always --name portainer portainer/portainer-ce:latest

Elasticsearch – 搜索引擎

我们还需要一个搜索引擎,这里选择Elasticsearch

docker run -d --name=elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /data/es:/usr/share/elasticsearch/data -v /data/es/plugins:/usr/share/elasticsearch/plugins elasticsearch:7.5.2

PostgreSQL – 关系型数据库

为了存储数据,我们使用PostgreSQL。

docker run --name postgres -e POSTGRES_PASSWORD=000000 -p 5432:5432 -v /data/postgresql/data:/var/lib/postgresql/data -d postgres

Redis – 键值对存储

我们还需要一个键值对存储服务,这里选择Redis。

docker run --name redis -p 6379:6379 -d redis:7.2.4-alpine3.19

RabbitMQ – 消息队列

为了实现消息队列功能,我们使用RabbitMQ。用户名密码默认都是guest。

docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.13.0-management-alpine

MySQL – 关系型数据库

除了PostgreSQL,我们也可以选择MySQL作为关系型数据库。

docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=000000 -p 3306:3306 -v /data/mysql/data:/var/lib/mysql -d mysql

Docker Registry – Docker镜像仓库

最后,我们可以搭建一个私有的Docker镜像仓库。如果通过域名访问,需要https,之后,通过反向代理http也可以访问。

docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --restart always --name registry registry:2

Gitness – 搭建本地Git仓库服务

例如,我们可以使用以下命令为Gitness添加自定义域名:

docker run -d -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock -v /data/gitness:/data -e GITNESS_URL_BASE=http://git.x.cn --name gitness-domain --restart always harness/gitness

现在,我们可以使用http://git.x.cn。来访问Gitness。

这样,我们就使用Docker快速搭建了一个开发环境,包括博客平台、Nginx管理工具、Git仓库管理工具、对象存储服务等等。这些容器可以通过自定义域名进行访问。

域名访问,dns配置

想通过域名访问,就得搭建本地dns服务器。dns可以使用你喜欢的任何方式进行搭建。

域名.x.cn的二级域名,就是通过本地搭建dns服务进行解析的。添加A记录 *,到ip。然后使用nginx,把需要访问的服务绑定到域名。需要访问的主机的dns设置为本地dns服务器地址。

  • Linux 设置dns

cat /etc/resolv.confnameserver 192.168.31.47

  • Windows 通过图形界面,在网络中进行设置。

所有容器,统一挂载了卷,到/data/*。通过单独分配目录,用于持久化Docker容器需要持久化的数据挂载本地的目录。

多台主机需要访问/data中的数据,在拥有/data数据主机安装配置nfs,为其他每台主机进行挂载nfs的盘到本地目录。即可多台主机像服务本地文件一样进行访问。

我非常喜欢使用Docker来搭建和管理我的开发环境。使用Docker容器可以使我能够快速部署和配置各种服务,而不必担心与其他服务之间的冲突。我可以轻松地将所需的服务组合在一起,并使用Docker容器管理工具进行管理。

在这个示例中,我使用了Ghost作为博客平台,Nginx UI作为Nginx管理工具,Gitness作为Git仓库管理工具,Minio作为对象存储服务,Portainer作为Docker容器管理工具,Elasticsearch作为搜索引擎,PostgreSQL和MySQL作为关系型数据库,Redis作为键值对存储,RabbitMQ作为消息队列,以及Docker Registry作为Docker镜像仓库。

通过使用这些工具,我可以在本地搭建一个完整的开发环境,并轻松地进行开发、部署和管理各种应用程序。我可以使用自定义的域名来访问这些服务,以便更方便地进行开发和测试。

总而言之,使用Docker可以极大地简化开发环境的搭建和管理过程,使我能够更专注于开发工作而不必担心底层的配置和冲突。这大大提高了我的工作效率,并使我能够更好地管理我的项目。作为一个程序员,我强烈推荐使用Docker来构建和管理开发环境。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月9日 上午10:55
下一篇 2024年5月9日 上午11:06

相关推荐