当前位置:   article > 正文

开发服务环境搭建使用docker,超级方便!_服务器搭建docker研发环境

服务器搭建docker研发环境

背景

我们开发的时候难免会使用到各种服务型的软件,以软件的方式安装后有以下的缺点:

1,不方便卸载,也容易有残留导致下一次安装的时候有问题

2, 不能启动多个相同服务,比如:本地运行了两个项目,都需要用到redis多开就比较麻烦

3, 也比较占后台,不能随时暂停或者启动,导致电脑游戏的时候也在“工作”,非常不专心

因此,我强烈推荐docker

演示:

1, 查看自己的服务

 2,新增一个服务有多方便

配置好docker后就只需以下几步即可开启一个服务,我以常用的mysql为列子:

(1)创建 docker-compose.yml 文件

  1. version: '2.0'
  2. services:
  3. mysql:
  4. image: mysql
  5. restart: always
  6. container_name: mysql
  7. environment:
  8. MYSQL_ROOT_PASSWORD: 2332636023
  9. command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp=true --lower_case_table_names=1 --max_allowed_packet=128M
  10. ports:
  11. - 3306:3306
  12. volumes:
  13. - ./data:/var/lib/mysql
  14. # - /etc/localtime:/etc/localtime:ro

 (2) 在文件上方的地址输入cmd进入docker-compose.yml的目录

 (3) 然后再输入,就可以创建一个服务,然后就可以在windows desktop中可视化管理自己服务,让自己的笔记本有更多内存可以干更多的事!

docker-compose up -d

第一次启动会有点慢,需要下载容器(相当于安装包),这些都不用管了,慢慢等待就可以了,后面配置的时候会讲怎么让下载速度不受除自己网络带宽以外的其它限制

 3,管理容器

点击view detail

(1)查看容器日志

(2)查看容器属性(运行数据什么的)

 如果和直接装sql相比,容易懂很多,mysql直接装会有好多服务,我直接不能具体了解它的资源占用

既然如此方便,那我接下来就演示一下怎么安装和配置docker desktop

安装docker desktop

1. 下载docker-desktop

官网链接: Install Docker Desktop on Windows | Docker Documentation

根据自己需求下载相应的版本,因为我只有windows系统电脑,就演示这个了

下载后还是尽量以管理员省份安装不然可能会报错,比如我的以用户身份安装就出现了一些奇奇怪怪的错误,我还以为是没卸载干净!!!

2. 配置虚拟化

(1)键盘输入ctrl + shift + esc 打开任务管理器,查看自己是否开启虚拟化

若开启了就可以跳过这个步骤

(2)开启虚拟化

具体参考此博客

(26条消息) Windows开启 CPU 虚拟化 + 关闭 Hyper-V_关闭cpu虚拟化_想你依然心痛的博客-CSDN博客

 3.开启hyper-v

(1)win+r 输入control

(2)重启电脑,就可以安装docker了,尽量以管理员身份运行

4.安装选择

1. 全选最好!不然很多容器运行可能有问题

(后续补图)

然后全选的话需要下载wsl才能使用,不然会报错

(后续补)

2.wsl下载链接

官网下载方法:安装 WSL | Microsoft Learn

然后我在一些电脑上发现各种奇奇怪怪的错误,非常让人不想继续了,所以给大家一个最终须要下载的安装包。

某盘地址:链接: https://pan.baidu.com/s/1FufvWwjyLJgY6XfuciCg9g 提取码: d9ks 

(这个大小16M,直接安装就不会报错了)

5.下载容器位置配置

(1)打开设置

或者

6.下载镜像源配置

注意上一行的逗号别漏了哦~

  1. "registry-mirrors": [
  2. "https://registry.docker-cn.com",
  3. "http://hub-mirror.c.163.com",
  4. "https://docker.mirrors.ustc.edu.cn"
  5. ]

7.docker访问目录配置(不配置可能导致docker无法启动)

8.对我来说非常重要的!!!

附件

常见docker服务启动文件(文件名为:docker-compose.yml):

1.mysql

  1. version: '2.0'
  2. services:
  3. mysql:
  4. image: mysql
  5. restart: always
  6. container_name: mysql
  7. environment:
  8. # mysql 密码,账号为root
  9. MYSQL_ROOT_PASSWORD: 2332636023
  10. command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp=true --lower_case_table_names=1 --max_allowed_packet=128M
  11. ports:
  12. - 3306:3306
  13. volumes:
  14. - ./data2:/var/lib/mysql
  15. # - /etc/localtime:/etc/localtime:ro

2.redis

  1. version: "2"
  2. services:
  3. redis:
  4. image: redis
  5. hostname: redis
  6. container_name: redis
  7. restart: always
  8. ports:
  9. # 端口映射
  10. - '6379:6379'
  11. volumes:
  12. # 目录映射
  13. - './config-docker/redis/redis.conf:/usr/local/etc/redis/redis.conf'
  14. - './DBdata/redis:/data'
  15. # 在容器中执行的命令
  16. command: redis-server /usr/local/etc/redis/redis.conf

3.mongodb

  1. version: '1.0'
  2. services:
  3. mongo:
  4. image: mongo
  5. container_name: mongo1
  6. restart: always
  7. # command: --config /etc/mongo/mongod.conf
  8. ports:
  9. - 27017:27017
  10. volumes:
  11. # 挂载数据目录
  12. - ./db:/data/db
  13. # 挂载日志目录
  14. - ./log:/var/log/mongodb
  15. # 挂载配置目录
  16. - ./config:/etc/mongo

4.gitlab

  1. version: "3"
  2. services:
  3. gitlab:
  4. restart: always
  5. image: gitlab/gitlab-ce:14.0.5-ce.0
  6. container_name: gitlab
  7. hostname: localhost
  8. ports:
  9. - "80:80"
  10. - "8022:22"
  11. - "8443:443"
  12. - "5432:5432"
  13. volumes:
  14. - ./config:/etc/gitlab
  15. - ./data:/var/opt/gitlab
  16. environment:
  17. TZ: Asia/Shanghai
  18. GITLAB_OMNIBUS_CONFIG: |
  19. # 配置克隆时的url地址,一般配置为本地的ip,这样局域网中的都可以用,如果自己的ip经常变,还是建议配置为http://localhost,只给自己使用,然后复制克隆地址的时候自己改localhost为主机当前ip
  20. external_url 'http://10.88.10.21'
  21. gitlab_rails['time_zone'] = 'Asia/Shanghai'
  22. # 关闭电子邮件相关功能
  23. gitlab_rails['smtp_enable'] = false
  24. gitlab_rails['gitlab_email_enabled'] = false
  25. gitlab_rails['incoming_email_enabled'] = false
  26. # Terraform
  27. gitlab_rails['terraform_state_enabled'] = false
  28. # Usage Statistics
  29. gitlab_rails['usage_ping_enabled'] = false
  30. gitlab_rails['sentry_enabled'] = false
  31. grafana['reporting_enabled'] = false
  32. # 关闭容器仓库功能
  33. gitlab_rails['gitlab_default_projects_features_container_registry'] = false
  34. gitlab_rails['registry_enabled'] = false
  35. registry['enable'] = false
  36. registry_nginx['enable'] = false
  37. # 包仓库
  38. gitlab_rails['packages_enabled'] = false
  39. gitlab_rails['dependency_proxy_enabled'] = false
  40. # GitLab KAS
  41. gitlab_kas['enable'] = false
  42. gitlab_rails['gitlab_kas_enabled'] = false
  43. # Mattermost
  44. mattermost['enable'] = false
  45. mattermost_nginx['enable'] = false
  46. # Kerberos
  47. gitlab_rails['kerberos_enabled'] = false
  48. sentinel['enable'] = false
  49. # GitLab Pages
  50. gitlab_pages['enable'] = false
  51. pages_nginx['enable'] = false
  52. # 禁用 PUMA 集群模式
  53. puma['worker_processes'] = 0
  54. puma['min_threads'] = 1
  55. puma['max_threads'] = 2
  56. # 降低后台守护进程并发数
  57. sidekiq['max_concurrency'] = 5
  58. gitlab_ci['gitlab_ci_all_broken_builds'] = false
  59. gitlab_ci['gitlab_ci_add_pusher'] = false
  60. # 关闭监控
  61. prometheus_monitoring['enable'] = false
  62. alertmanager['enable'] = false
  63. node_exporter['enable'] = false
  64. redis_exporter['enable'] = false
  65. postgres_exporter['enable'] = false
  66. pgbouncer_exporter['enable'] = false
  67. gitlab_exporter['enable'] = false
  68. grafana['enable'] = false
  69. sidekiq['metrics_enabled'] = false

5.mariadb

  1. version: '1.1'
  2. services:
  3. mariadb:
  4. image: mariadb:10.5.17
  5. container_name: "mariadb1"
  6. restart: always
  7. environment:
  8. # 创建一个noal用户
  9. MYSQL_USER: "noal"
  10. # noal用户密码为 2332636023
  11. MYSQL_PASSWORD: "2332636023"
  12. # root用户默认就会有,root用户密码为 2332636023
  13. MYSQL_ROOT_PASSWORD: "2332636023"
  14. TZ: "Asia/Shanghai"
  15. ports:
  16. - "3306:3306"
  17. volumes:
  18. - ./data:/var/lib/mysql
  19. - ./log:/var/log/mysql
  20. - ./conf:/etc/mysql

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/364749
推荐阅读
相关标签
  

闽ICP备14008679号