冷文学习者 - docker
type: channel
link: https://www.kevinlu98.cn/tag/docker/
items: Docker搭建，镜像加速，DPanel安装
items: MySQL快速起步
items: Scrapy爬虫Docker部署

Docker搭建，镜像加速，DPanel安装
type: item
date: 2025-12-23T22:07:00+08:00
description: Docker搭建，镜像加速，DPanel安装1.为什么要学习DockerQ1: 在我买电脑上明明是好的！！！Q2: 根着教程安装一个软件，结果安装失败Docker: 此时就有一个解决方案，Docker容器化部署 ，它能用集装箱式的隔离，完美解决环境问题，彻底解决部署时的各种环境麻烦2.安装参考毫秒镜像Docker安装文档一键安装脚本bash <(curl -f -s --connect-timeout 10 --retry 3 https://linuxmirrors.cn/docker.sh) --source mirrors.tencent.com/docker-ce --source-registry docker.1ms.run --protocol https --install-latested true --close-firewall false --ignore-backup-tips可以用如下命令验证下是否安装成功docker version输出如下即为成功Client: Docker Engine - Community Version: 29.1.3 API version: 1.52 Go version: go1.25.5 Git commit: f52814d Built: Fri Dec 12 14:53:00 2025 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 29.1.3 API version: 1.52 (minimum version 1.44) Go version: go1.25.5 Git commit: fbf3ed2 Built: Fri Dec 12 14:49:33 2025 OS/Arch: linux/amd64 Experimental: false containerd: Version: v2.2.1 GitCommit: dea7da592f5d1d2b7755e3a161be07f43fad8f75 runc: Version: 1.3.4 GitCommit: v1.3.4-0-gd6d73eb8 docker-init: Version: 0.19.0 GitCommit: de40ad03.设置镜像加速看下/etc/docker目录是否存在，如果存在则再看daemon.json是否存在file /etc/docker/ file /etc/docker/daemon.json如果不存在使用如下命令创建mkdir -p /etc/docker如果daemon.json不存在则直接执行如下命令tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://docker.1ms.run"] } EOF如果daemon.json存在则打开文件，将镜像加速地址(https://docker.1ms.run) 追加到registry-mirrors里Docker镜像加速站https://hub.uuuadc.top/docker.1panel.live hub.rat.dev DockerHub 镜像加速代理https://docker.anyhub.us.kghttps://docker.chenby.cn https://dockerhub.jobcher.com/ 镜像使用说明https://dockerhub.icuDocker镜像加速站https://docker.ckyl.me镜像使用说明 73https://docker.awsl9527.cn镜像使用说明 67https://docker.hpcloud.cloudAtomHub 可信镜像仓库平台 77（只包含基础镜像，共336个）https://atomhub.openatom.cnDaoCloud 镜像站 146https://docker.m.daocloud.io重载daemon.json的配置systemctl daemon-reload重启dockersystemctl restart docker4.DPanel安装DPanel是由donknap开发的一个开源项目Github地址：传送门Docker Hub：传送门一个轻量级的Docker管理工具，为用户提供一个直观、易用的界面来管理Docker容器。dpanel以其轻量化和高性能著称，是Docker用户的理想选择。功能如下：提供可视化面板操作docker及compose容器管事镜像管理日志查看Docker网络管理数据卷管理开始安…

MySQL快速起步
type: item
date: 2023-04-28T10:24:20+08:00
description: Docker安装MySQLDocker是一个开源的容器化平台，可以方便地搭建各种环境，包括MySQL数据库。在本教程中，我们将介绍如何使用Docker安装MySQL。安装Docker首先，您需要在您的计算机上安装Docker。您可以在Docker官方网站下载适用于您的操作系统的Docker Desktop应用程序并安装。拉取MySQL镜像接下来，您需要从Docker Hub上拉取MySQL镜像。打开终端并执行以下命令：docker pull mysql这将从Docker Hub上下载MySQL镜像。您可以通过以下命令查看已下载的镜像：docker images启动MySQL容器现在，您可以使用以下命令启动MySQL容器：docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest此命令将在后台运行MySQL容器，并将其命名为“some-mysql”。此外，您需要设置MySQL的root密码，以便在后续的步骤中进行访问。连接MySQL容器要连接到MySQL容器，您可以使用以下命令：docker exec -it some-mysql mysql -p此命令将连接到MySQL容器，并要求您输入root密码。输入您在步骤3中设置的密码即可登录MySQL。使用MySQL容器现在，您已经成功地使用Docker安装和启动了MySQL容器。您可以使用常规的MySQL命令进行数据库管理。例如，您可以使用以下命令创建一个新的数据库：CREATE DATABASE mydatabase;DDL（数据定义语言）学习当我们想要创建一个新的MySQL表时，我们需要使用DDL（数据定义语言）来定义表的结构。DDL包括创建表，修改表和删除表等操作。创建库基本语法在MySQL中，可以使用CREATE DATABASE语句来创建一个新的数据库。它的基本语法如下：CREATE DATABASE database_name;其中，database_name是要创建的数据库的名称。例如，要创建一个名为mydatabase的新数据库，可以使用以下查询：CREATE DATABASE mydatabase;需要注意的是，创建数据库的用户必须具有足够的权限。如果当前用户没有创建数据库的权限，可以使用以下查询来授权：GRANT CREATE ON *.* TO 'user'@'localhost';这个查询将授予user用户在本地主机上创建数据库的权限。在创建数据库后，可以使用USE语句来选择要使用的数据库。例如，要使用mydatabase数据库，可以使用以下查询：USE mydatabase;这个查询将选择mydatabase数据库，并将其设置为当前数据库。在选择数据库后，可以使用其他SQL语句来创建表、插入数据、查询数据等。命名在MySQL中，数据库名必须遵循以下规则：数据库名必须以字母开头，可以包含字母、数字和下划线。数据库名不能超过64个字符。数据库名区分大小写。数据库名不能与MySQL保留关键字相同，例如SELECT、INSERT、UPDATE等。需要注意的是，虽然MySQL允许使用特殊字符和空格作为数据库名，但这并不是一个好的做法，因为它可能会导致一些问题。为了避免这些问题，最好只使用字母、数字和下划线作为数据库名。另外，建议在命名数据库时使用有意义的名称，以便更好地描述数据库的内容和用途。例如，如果数据库用于存储客户信息，可以将其命名为customers。这样做可以使数据库更易于管理和维护。字符集在MySQL中，字符集用于定义数据库中存储的字符集和排序规则。MySQL支持多种字符集，包括ASCII、UTF-8、GBK等。在创建数据库时，可以指定要使用的字符集。如果没有指定字符集，则使用默认字符集。要查看MySQL中可用的字符集，可以使用以下查询：SHOW CHARACTER SET;要查看当前数据库的字符集，可以使用以下查询：SELECT @@character_set_database;要创建一个使用特定字符集的数据库，可以在CREATE DATABASE语句中指定字符集。例如，要创建一个使用UTF-8字符集的数据库，可以使用以下查询：CREATE DATABASE mydatabase CHARACTER SET utf8;排序规则在MySQL中，排序规则用于定义字符串比较的方式。MySQL支持多种排序规则，包括二进制排序、不区分大小写排序、区分大小写排序等。在创建数据库时，可以指定要使用的排序规则。如果没有指定排序规则，则使用默认排序规则。要查看MySQL中可用的排序规则，可以使用以下查询：SHOW COLLATION;要查看当前数据库的排序规则，可以使用…

Scrapy爬虫Docker部署
type: item
date: 2021-07-02T19:07:00+08:00
description: 说明Scrapy作为一款优秀的Python爬虫框架，相信很多人都可以利用它完成各式各样的爬虫job，那么我们的Scrapy项目如何部署到生产环境呢？部署后如何管理我们的爬虫job呢？有人说直接上传代码到服务器上然后执行，这样当然可以，但这种方式不够优雅，不方便管理。用下面这种方式来管理我们的爬虫任务是不是方便了很多，也简单了很多这套页面其实就是scrapyd+spiderkeeper实现的Scrapyd：https://scrapyd.readthedocs.io/en/latest/​ 按照官方的介绍来看它就是一个用于部署和运行scrapy爬虫的程序，它允许我们使用JSON API的方式来管理我们的爬虫程序，换而言之，就是scrapyd可以用来部署scrapy项目，但没有一个可视化的页面来操作，只能通过HTTP请求调用它提供的接口来操作，很不方便。Spiderkeeper：https://github.com/DormyMo/SpiderKeeper大致意思就是spiderkeeper提供了一个dashboard来调度管理爬虫程序，它目前支持的爬虫服务有scrapyd，换而言之就是对scrapyd进行了封装，提供了可视化的面板来操作安装Docker传送门 https://docs.docker.com/get-docker/找到自己操作系统对应的版本下载即可安装成功后终端执行docker --version可以出现版本号即可编写Dockerfile在本机随便一个位置创建目录，我这里以scrapy-container为例进入到刚刚创建的目录，然后创建scrapyd.conf文件用于自定义scrapyd的配置，内容如下(我这里使用的是scrapyd的默认配置)[scrapyd] eggs_dir = eggs logs_dir = logs items_dir = jobs_to_keep = 5 dbs_dir = dbs max_proc = 0 max_proc_per_cpu = 10 finished_to_keep = 100 poll_interval = 5.0 bind_address = 0.0.0.0 http_port = 6800 debug = off runner = scrapyd.runner application = scrapyd.app.application launcher = scrapyd.launcher.Launcher webroot = scrapyd.website.Root [services] schedule.json = scrapyd.webservice.Schedule cancel.json = scrapyd.webservice.Cancel addversion.json = scrapyd.webservice.AddVersion listprojects.json = scrapyd.webservice.ListProjects listversions.json = scrapyd.webservice.ListVersions listspiders.json = scrapyd.webservice.ListSpiders delproject.json = scrapyd.webservice.DeleteProject delversion.json = scrapyd.webservice.DeleteVersion listjobs.json = scrapyd.webservice.ListJobs daemonstatus.json = scrapyd.webservice.DaemonStatus利用pip freeze > requirements.txt将项目运行需要的依赖导出到当前目录创建start.sh启动脚本，即在容器开始运行时执行，内容如下#!/bin/bash scrapyd & spiderkeeper --server=http://localhost:6800创建Dockerfile文件，内容如下FROM python:3.6 ADD . /code WORKDIR /code COPY ./scrapyd.conf /etc/scrapyd/ EXPOSE 5000 RUN pip3 install --upgrade pip setuptools==45.2.0 RUN pip3 install scrapy RUN pip3 install requests RUN pip3 install scrapyd RUN pip3 install spiderkeeper RUN pip3 insta…