首页 > 编程语言 >Python工具箱系列(三十六)

Python工具箱系列(三十六)

时间:2023-06-20 17:02:03浏览次数:48  
标签:三十六 get Python sudo apt ubuntu 工具箱 Docker docker

基于Docker的数据库开发环境

前文介绍了sqlite/mysql/mssql等数据库系统在ubuntu的安装与部署过程,相对是比较复杂的,需要耐心等待下载以及排除各种故障,对于开发人员来说是不太友好。在某些情况下,开发人员要测试在多个数据库环境下软件的正确性,需要部署多个数据库,为此可以使用Docker技术。

Docker提供了基于镜像的运行环境,可以将操作系统、应用程序以及相关依赖打包,为使用者提供完整的使用体验,因此一经推出大获好评,迅速成为主流的软件开发技术之一。Docker有着完善的命令行功能,在Windows环境下有多种GUI管理软件,本文对Docker不再赘述。下面先在ubuntu bionic上建立Docker服务,随后基于Docker composer将多个数据库打包启动,为开发者提供多数据库支持环境。

# 删除旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 真正有用的部分
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# aliyun mirrors
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

sudo apt-get update
sudo apt-get install -y docker-ce
sudo systemctl enable docker
sudo systemctl start docker

sudo usermod -aG docker $USER
sudo systemctl daemon-reload
sudo systemctl restart docker

# 不在此机上开发python可以直接安装这个基于python2.7.17的低版本应用
apt install docker-compose

使用scp或者直接vi编辑Docker-compse.yml文件如下:

version: "3.3"

services:
    clickhouseserver:
        restart: always
        image: yandex/clickhouse-server:21.6.5.37-alpine
        container_name: clickhouseserver
        hostname: clickhouseserver
        environment:
            - TZ=Asia/Shanghai
        ports:
            - 8123:8123
            - 9000:9000
        ulimits:
            nofile:
                soft: 262144
                hard: 262144  
                
    sqlserver:
        image: mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04
        restart: always
        container_name: mssql
        environment: 
            - ACCEPT_EULA=Y
            - SA_PASSWORD=Zm88488848
        ports:
            - 1433:1433

    mysql:
        image: mysql
        command: --default-authentication-plugin=mysql_native_password
        restart: always
        ports:
            - 3306:3306
        environment:
            MYSQL_ROOT_PASSWORD: 88488848

    pg:
        image: postgres
        restart: always
        ports:
            - 5432:5432
        environment:
            POSTGRES_PASSWORD: 88488848

随后运行以下命令启动。

# 启动编排,可以按ctrl-c中止
docker-compose up

# 类似于服务的永久启动。
docker-compose up -d

在第一次启动时,由于本地没有对应的镜像,会自动下载,时间稍长些。后续启动时将非常快速。由于以上数据库不真正投入生产环境,所以没有引入挂载点。此外,根据官方文档要求,sqlserver镜像在配置时,必须使用强口令(8位大小写字母与符号的混合)。另,8848的意思是珠峰的高度。

标签:三十六,get,Python,sudo,apt,ubuntu,工具箱,Docker,docker
From: https://blog.51cto.com/shanxihualu/6523974

相关文章

  • 超级详细的python爬虫
    演示一个虎扑体育网站-NBA球员新手的话需要安装两个模块requests和lxmlrequests的作用:就是爬虫模块不断向浏览器发送请求lxml的作用:模块可以利用XPath规则语法,来快速的定位HTML\XML文档中特定元素以及获取节点信息1.mportrequests2.fromlxmlimportetree3.ur......
  • Python 强制杀死运行中的多进程脚本
    本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!Python强制杀死运行中的多进程脚本,实现完全停止环境win10Pytho3.9获取当前脚本的进程id#获取当前进程......
  • requests爬虫实践之安居客二手房屋数据(python实现)
    1.先从安居客官网上淘到如下数据(详细方法可见博主爬取爱彼迎那篇博客):2.源码(警告:若频繁爬取安居客官网数据,将被要求入网验证…)importrequestsfrombs4importBeautifulSoupheaders={'user-agent':'Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,l......
  • Python开发系列课程(2) - 语言元素
    语言元素指令和程序计算机的硬件系统通常由五大部件构成,包括:运算器、控制器、存储器、输入设备和输出设备。其中,运算器和控制器放在一起就是我们通常所说的中央处理器,它的功能是执行各种运算和控制指令以及处理计算机软件中的数据。我们通常所说的程序实际上就是指令的集合,我们写程......
  • python 星号(*) 还能这么用
    哈喽大家好,我是咸鱼今天跟大家介绍一下python当中星号(*)的一些用法首先大家最常见的就是在python中*是乘法运算符,实现乘法sum=5*5#25除此之外,还有一种常见的用法就是*号操作符在函数中的用法单星号(*)在函数中用法举个例子,你有一个函数,用来实现两个数求和def......
  • Python进阶-上下文管理器
    上下文管理器定义包装任意代码确保执行的一致性语法with语句__enter__和__exit__方法classContextManager(object):def__init__(self):self.entered=Falsedef__enter__(self):self.entered=Truereturnself......
  • [python][图像切割]给定手写数字图片完成数字切割
    importtorchimporttorch.nnasnnfromtorchvisionimporttransformsfromPILimportImage,ImageOpsimportnumpyasnpimg=Image.open("QQ.png")imgdefCutImage(img):img=img.convert("L")threshold=128img=img.point(......
  • 【Fidder网络抓包+Python爬虫】下载微信小程序视频
    首先声明本篇博客以学习为目的,侵权即删。文章目录1.Fidder抓包1.1在电脑上打开微信小程序视频播放页以及Fidder软件1.2点击视频播放按钮,并查看Fidder抓到的数据包2.Python爬虫2.1视频下载2.2视频合并2.3完整代码3.写在最后1.Fidder抓包       关于fidder软件的安......
  • Python中获取路径/文件的父目录
    本教程将讲解在Python中获取一个路径的父目录的各种方法。父目录是指高于或高于给定目录或文件的目录。例如,路径 C:\folder\subfolder\myfile.txt 的父目录是 C:\folder\subfolder。除了根目录外,每个目录都有一个父目录。1、使用 pathlib 模块的 path.parent() 方法获......
  • wxpython使用matplotlib.pyplot绘制GUI嵌入式统计图
    在使用wxpython编写GUI时,如果需要在GUI上显示统计图,这里就可以用到matplotlib.pyplot;一、首先就是导入matplotlib.pyplot模块frommatplotlib.backends.backend_wxaggimportFigureCanvasWxAggasFigureCanvasimportmatplotlib.pyplotasplt然后就需要一个容器,可以理......