翼度科技»论坛 编程开发 python 查看内容

Python工具箱系列(三十六)

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
基于Docker的数据库开发环境
前文介绍了sqlite/mysql/mssql等数据库系统在ubuntu的安装与部署过程,相对是比较复杂的,需要耐心等待下载以及排除各种故障,对于开发人员来说是不太友好。在某些情况下,开发人员要测试在多个数据库环境下软件的正确性,需要部署多个数据库,为此可以使用Docker技术。
Docker提供了基于镜像的运行环境,可以将操作系统、应用程序以及相关依赖打包,为使用者提供完整的使用体验,因此一经推出大获好评,迅速成为主流的软件开发技术之一。Docker有着完善的命令行功能,在Windows环境下有多种GUI管理软件,本文对Docker不再赘述。下面先在ubuntu bionic上建立Docker服务,随后基于Docker composer将多个数据库打包启动,为开发者提供多数据库支持环境。
  1. # 删除旧版本
  2. sudo apt-get remove docker docker-engine docker.io containerd runc
  3. sudo apt-get update
  4. sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  5. # 真正有用的部分
  6. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  7. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  8. # aliyun mirrors
  9. curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
  10. sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
  11. sudo apt-get update
  12. sudo apt-get install -y docker-ce
  13. sudo systemctl enable docker
  14. sudo systemctl start docker
  15. sudo usermod -aG docker $USER
  16. sudo systemctl daemon-reload
  17. sudo systemctl restart docker
  18. # 不在此机上开发python可以直接安装这个基于python2.7.17的低版本应用
  19. apt install docker-compose
复制代码
使用scp或者直接vi编辑Docker-compse.yml文件如下:
  1. version: "3.3"
  2. services:
  3.     clickhouseserver:
  4.         restart: always
  5.         image: yandex/clickhouse-server:21.6.5.37-alpine
  6.         container_name: clickhouseserver
  7.         hostname: clickhouseserver
  8.         environment:
  9.             - TZ=Asia/Shanghai
  10.         ports:
  11.             - 8123:8123
  12.             - 9000:9000
  13.         ulimits:
  14.             nofile:
  15.                 soft: 262144
  16.                 hard: 262144  
  17.                
  18.     sqlserver:
  19.         image: mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04
  20.         restart: always
  21.         container_name: mssql
  22.         environment:
  23.             - ACCEPT_EULA=Y
  24.             - SA_PASSWORD=Zm88488848
  25.         ports:
  26.             - 1433:1433
  27.     mysql:
  28.         image: mysql
  29.         command: --default-authentication-plugin=mysql_native_password
  30.         restart: always
  31.         ports:
  32.             - 3306:3306
  33.         environment:
  34.             MYSQL_ROOT_PASSWORD: 88488848
  35.     pg:
  36.         image: postgres
  37.         restart: always
  38.         ports:
  39.             - 5432:5432
  40.         environment:
  41.             POSTGRES_PASSWORD: 88488848
复制代码
随后运行以下命令启动。
  1. # 启动编排,可以按ctrl-c中止
  2. docker-compose up
  3. # 类似于服务的永久启动。
  4. docker-compose up -d
复制代码
在第一次启动时,由于本地没有对应的镜像,会自动下载,时间稍长些。后续启动时将非常快速。由于以上数据库不真正投入生产环境,所以没有引入挂载点。此外,根据官方文档要求,sqlserver镜像在配置时,必须使用强口令(8位大小写字母与符号的混合)。另,8848的意思是珠峰的高度。

来源:https://www.cnblogs.com/shanxihualu/p/17494112.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具