当前位置:   article > 正文

【打工日常】Docker部署一款私有化的社区问答网站_docker 社区

docker 社区
  1. 一、项目介绍
  2. 1.项目简述
  3. Answer是一款可帮助你在用户或团队之间建立问答社区,你可以在这里分享知识并帮助用户解决问题。
  4. 2.项目功能
  5. 主要功能:提问和回答 - 提出问题并从你的用户和团队那里获得答案;组织内容 - 将你的内容组织为分类和标签;集成 - 与你现有的工具和服务集成;游戏化 - 奖励用户的贡献;现代用户界面 - 现代且响应式的用户界面;可扩展 - 使用插件扩展 Answer;开源 - 免费且开源。
  6. 3.项目开源地址
  7. https://github.com/apache/incubator-answer
  8. ----------
  9. 二、项目搭建环境
  10. 1. 项目测试环境
  11. A.项目搭建在腾讯云centos7.6,外网地址为43.138.153.157
  12. Linux VM-8-12-centos 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
  13. B.docker版本为26.01,docker-compose版本为v2.26.1
  14. 注意:本次实践部署环境为个人腾讯云的测试环境,若是生产环境请谨慎部署;对应开启了容器的端口,在linux下和防火墙下需开放对应端口。
  15. 2. 本次项目实施过程
  16. 使用docker下载镜像,创建好项目需要挂载的路径,通过docker-cli或者docker compose启动容器,启动容器后查看容器启动状态,查看容器的运行日志是否正常,以上全部正常执行后体验项目功能。
  17. 3.注意:docker下载镜像有可能遇到比较慢的情况,参考以下解决措施:
  18. A.docker配置换源,进入/etc/docker的路径,如果没有就创建这个目录
  19. cd /etc/docker/
  20. mkdir -p /etc/docker
  21. B.编辑配置文件
  22. vim daemon.json ##可以清空里面的内容:%d 然后复制下面的源进去wq保存
  23. {
  24. "registry-mirrors":[
  25. "https://286u3d9d.mirror.aliyuncs.com"
  26. ]
  27. }
  28. C.registry-mirrors:指定了一个镜像仓库的 URL https://286u3d9d.mirror.aliyuncs.com。 这个配置项用于设置 Docker镜像的镜像仓库地址,使得在拉取和推送 Docker 镜像时能够通过该镜像仓库进行加速。这边提供的是广东广州服务器的镜源,建议个人自己去阿里云建一个个人账号,根据实际所在区获取镜源。
  29. D.重新加载源,重启docker服务
  30. sudo systemctl daemon-reload
  31. sudo systemctl restart docker
  32. ----------
  33. 三、项目搭建前巡检
  34. 1. 检查docker是否正常运行
  35. systemctl status docker
  36. or
  37. service docker status
  38. 注:我个人测试环境是使用systemctl进行管理,若有使用service管理请使用第二条的命令进行查看。
  39. [root@VM-8-12-centos ~]# systemctl status docker
  40. ● docker.service - Docker Application Container Engine
  41. Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
  42. Active: active (running) since Mon 2024-04-22 23:13:57 CST; 4 days ago
  43. Docs: https://docs.docker.com
  44. Main PID: 17092 (dockerd)
  45. Tasks: 158
  46. Memory: 142.3M
  47. CGroup: /system.slice/docker.service
  48. 若显示docker的Active是active (running),即表明docker是正常运行的。
  49. 2.一般我会使用docker-compose去管理,所以预先需要创建好yaml文件,vim docker-compose.yml,格式如下例子:
  50. version: '3.9'
  51. services:
  52. nginx:
  53. image: nginx
  54. logging:
  55. options:
  56. max-size: 1g
  57. restart: always
  58. volumes:
  59. - '/var/run/docker.sock:/tmp/docker.sock:ro'
  60. ports:
  61. - '80:80'
  62. ----------
  63. 四、项目实施过程
  64. 1.根据开源项目,找到对应的镜像进行pull,若遇到很慢的情况,先检查是否网络问题以及是否已经换源。可以预先下载,也可以等后面docker-compose启动的时候再一并下载镜像。
  65. docker pull answerdev/answer
  66. [root@VM-8-12-centos ~]# docker pull answerdev/answer
  67. Using default tag: latest
  68. latest: Pulling from answerdev/answer
  69. 96526aa774ef: Pull complete
  70. 44ee3866a475: Pull complete
  71. 1a1a1ebf26aa: Pull complete
  72. ba7833dc7fd4: Pull complete
  73. 050930189c75: Pull complete
  74. Digest: sha256:03bb356e2d783b47da048f4c351f1ff9241cbe7c15f0a41a8a857ea9a6449d54
  75. Status: Downloaded newer image for answerdev/answer:latest
  76. docker.io/answerdev/answer:latest
  77. 2.若已经下载完成显示新的一行,可以输入命令查看是否上一条命令执行成功
  78. echo$?
  79. 若返回0,则成功;返回其他则根据实际情况重新下载或者查找原因。
  80. 3.docker下载完后,可以查看对应的镜像是否下载成功
  81. docker images |grep answer
  82. 4.下载成功后,编辑docker-compose.yml文件
  83. version: "3"
  84. services:
  85. answer:
  86. image: answerdev/answer
  87. ports:
  88. - '9080:80'
  89. restart: on-failure
  90. volumes:
  91. - ./data:/data
  92. db:
  93. image: mariadb:10
  94. command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  95. ports:
  96. - '3306:3306'
  97. environment:
  98. MYSQL_ROOT_PASSWORD: root
  99. MYSQL_USER: root
  100. MYSQL_PASSWORD: root
  101. MYSQL_DATABASE: root
  102. volumes:
  103. - ./mariadb:/var/lib/mysql
  104. restart: on-failure
  105. 编辑后输入wq进行保存
  106. 5.为了便捷启动,也可以使用docker-cli启动,这里需要你事先启动好mysql
  107. docker run -d -p 9080:80 -v ./data:/data --name answer apache/answer:latest
  108. 6.启动docker-compose
  109. docker compose up -d
  110. 7.启动容器后,查看容器的状态是否正常
  111. docker compose ps
  112. [root@VM-8-12-centos answer]# docker compose ps
  113. WARN[0000] /opt/answer/docker-compose.yml: `version` is obsolete
  114. NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
  115. answer-answer-1 answerdev/answer "/entrypoint.sh" answer 5 seconds ago Up 4 seconds 0.0.0.0:9080->80/tcp, :::9080->80/tcp
  116. answer-db-1 mariadb:10 "docker-entrypoint.s…" db 5 seconds ago Up 4 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp
  117. 8.启动容器后,查看容器的日志是否正常
  118. docker logs -f answer-answer-1
  119. [root@VM-8-12-centos answer]# docker logs -f answer-answer-1
  120. [upload-dir] try to install...
  121. [upload-dir] install success, upload directory is /data/uploads
  122. [i18n] try to install i18n bundle...
  123. [i18n] find i18n bundle 42
  124. install all initial environment done
  125. config file exists, try to read the config...
  126. config file read successfully, try to connect database...
  127. connection database failed: dial tcp 172.26.0.3:3306: connect: connection refused
  128. [SUCCESS] answer installation service will run at: http://localhost:80/install/
  129. ----------
  130. 五、项目体验
  131. 注:云服务器记得放开防火墙9080
  132. 访问地址https://43.138.153.157:9080/,欢迎点击玩一下!
  133. 更多好玩有趣有用的内容,请关注微信公众号:零氪的云原生

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号