说明 记得上学的时候使用过一段时间的内网穿透,当时好像用的是叫花生壳的软件来的,主要是因为要让其他地方的机器访问到我在家里那台机器上部署的网站之类的。目前仍然有很多这样场景,比如我要在家里访问到公司内网的东西,比如我要用域名访问到内网某台服务器上的系统。本文举的例子是使用一个域名从外部访问到我本地部署的服务。
前期准备 注册一个 Cloudflare 账号 注册个人域名 新增域名网站,并将域名添加到 Cloudflare 的 DNS 服务 开通 Cloudflare Zero Trust 服务,选择免费的即可,详细步骤也可查看:官方文档 安装 1 $ brew install cloudflared 使用 登录 1 $ cloudflared tunnel login 如果登录成功,将在用户家目录的 .cloudflared 目录下生成 cert.pem 文件
创建Tunnel 1 2 3 4 5 6 7 8 9 10 11 # 创建 $ cloudflared tunnel create <tunnel-name> # 列出所有的 tunnel $ cloudflared tunnel list # 删除指定的 tunnel $ cloudflared tunnel delete <tunnel-name> # 这里假设创建个 tunnel-test $ cloudflared tunnel create tunnel-test 配置 DNS 记录 1 2 3 4 5 # 配置 DNS $ cloudflared tunnel route dns <tunnel-name> <domain> # 为 tunnel-test 配置域名 $ cloudflared tunnel route dns tunnel-test a.
前言 接《Docker 的总结与使用之 Dockerfile(二)》 。
说明 在一个项目中,常常需要使用多个组件或程序,比如前端、后端、数据库(例如 MySQL)、缓存(例如 Redis)等。尽管我们可以通过编写 Dockerfile 构建镜像,或者直接从镜像仓库拉取镜像,但如果对每个镜像都手动使用 docker run 命令来启动容器,将会显得相当繁琐。这时候,docker-compose 就派上了用场。使用 docker-compose,我们可以通过编写一个简洁的 docker-compose.yml 配置文件来统一编排和部署多个镜像,然后通过简单的命令就能启动它们。
使用 常用指令 指令 说明 up 启动所有服务,默认前台启动,-d 后台启动 down 关闭所有服务 start 启动指定服务 restart 重启指定服务 stop 关闭指定服务 pause 暂停指定服务 unpause 取消暂停指定服务 exec 进入指定服务容器 rm 删除指定服务 top 查看指定服务容器内的进程状况 logs 查看指定服务的日志信息 示例 说明 此处通过一个示例来说明 docker-compose.yml 配置文件的内容,该示例是一个经典的场景:前端(Vue)+ 后端(Golang)+ 数据库(MySQL)+ 缓存(Redis)。
配置文件说明 确认 docker 与 docker-compose的版本 https://docs.docker.com/compose/compose-file/compose-file-v3/ ,在此网址可查看到。 创建目录和数据卷 1 2 3 $ docker network create -d bridge web_net $ docker volume create logs_data $ docker volume create conf_data 在项目目录内创建 docker-compose.
前言 接 《Docker 的总结与使用之Docker(一)》 。
说明 一般情况下,我们可以使用 Dockerfile 来进行镜像的构建。流程是这样的:
获取到基础镜像 编写一个 Dockerfile 文件 使用 docker build 命令进行构建 使用 指令介绍 指令 说明 FROM 基础镜像,从哪个镜像开始构建 MAINTAINER 作者信息,弃用 LABEL 镜像元信息,KV 形式,比如作者信息 COPY 从宿主机复制文件到镜像里 ADD 从宿主机复制文件到镜像里,区别于 COPY 会对 tar 包解压 WORKDIR 设置工作目录,相当于执行 CD ENV 设置镜像里的环境变量 ARG 构建过程指定的环境变量 USER 启动容器的用户 RUN 构建镜像时执行的命令,一般执行安装环境相关的命令 CMD 容器启动后的执行的命令,可被 docker run 覆盖 ENTRYPOINT 容器启动后默认运行程序或命令,不可被 docker run 覆盖 EXPOSE 暴露容器里的端口 VOLUME 将宿主机的目录挂载到容器里,为了低耦合,一般不用 ONBUILD 触发器,当该镜像被用作另一个构建过程的基础时 STOPSIGNAL 发送给容器以退出的系统调用信号 HEALTHCHECK 周期性检查容器健康状态的命令 SHELL 覆盖 Docker 中默认的 shell 单阶段构建 说明 单阶段构建是指整个构建过程只需要在一个基础镜像上构建就可以完成。
前言 我有幸很久之前的工作是负责云计算方面的,因此我在很早的时候就使用上了Docker,也知道 Docker 的部分原理。经过这些年的发展,特别是云原生方面,Docker被广泛地使用。在2015年写过一遍Docker的使用文章,但说得不全也不好,今天来重新写一份,本文是第一部分,旨在说明 docker 命令的基本使用,希望对大家能有帮助。
说明 本文并没有讲解 docker 的原理和主要概念,网上有很多资料对这方面进行了讲解,请自行查阅。本文列举了一堆可能常用的命令示例,作为参考,相关使用者能一目了然。
安装 1 $ brew install docker docker-compose docker-buildx docker-completion 使用 基础 1 2 3 4 5 # 查看版本号 $ docker --version # 查看状态 $ docker stats 镜像 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 # 获取镜像 $ docker pull hello-world # 查看镜像 $ docker images # 查找镜像 $ docker search nginx # 删除镜像 $ docker rmi hell-world # 创建镜像:hwsdien/hello-world:v1 # -m: 描述信息 # -a: 作者 # 9d8bb5b878f6: 容器ID # hwsdien/hello-world:v1: 创建的镜像名 $ docker commit -m="new version" -a="hwsdien" 9d8bb5b878f6 hwsdien/hello-world:v1 # 增加tag $ docker tag 9d8bb5b878f6 hwsdien/hello-world:dev # 构建镜像 # 1、编写 Dockerfile 文件 $ cat .
前言 随着现代应用开发的快速发展,容器化技术和Kubernetes成为了关键的工具,为开发者提供了灵活、可扩展的部署和管理方式。本文旨在为读者提供安装和使用Docker、Colima、kubectl以及Minikube的详细指南,同时介绍常用的命令,使其能够轻松驾驭这些强大的工具。
Docker 简介 Docker是一种利用Google公司推出的Go语言开发的容器化技术,它基于Linux内核的cgroup、namespace以及OverlayFS等技术,实现对进程的封装和隔离,属于操作系统层面的虚拟化技术。通过这些技术,Docker能够将应用程序及其依赖项打包为独立的容器,使其在不同环境中具备一致性和可移植性。最初版本使用了LXC,但从0.7版本开始逐步移除LXC,转而采用自行开发的libcontainer。随着发展,从1.11版本开始,Docker进一步演进,采用了runC 和 containerd。
安装 1 2 # 不要加 --casks 安装GUI的 docker desktop, 它太重,需要账号登录和收费。 $ brew install docker 常用命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 查看版本号 $ docker --version # 查看配置信息 $ docker info # 显示所有容器 $ docker ps -al # 显示所有镜像 $ docker images # 删除某个镜像 $ docker rmi <image_id> # 暂停某个容器 $ docker stop <image_name> # 启动某个容器 $ docker start <image_name> Docker-compose 简介 Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。它允许通过一个单独的配置文件(通常称为docker-compose.
背景 前段时间由于工作关系,用 Matlab 进行了关于期货的量化程序开发和BUG修复,想着 Python 方面有没有类似于 Matlab 这样的 IDE 工具,后来找了找,专注于 Python 数据分析的 IDE 可能就是 Spyder 和 DataSpell。Spyder 有些功能就是类似于 Matlab里的,正是我所需要的,但是经过几天的使用,我发现并不是很适合我,因为我习惯了用VIM模式,可是它的VIM插件体验很不好。如果不在乎VIM编辑的用户,可能更适合,这里来简单介绍记录一下。
安装 如果是不用一些插件的话,就直接去官网下载就行了,官网地址是这个:https://www.spyder-ide.org/ 如果后面要安装一些插件,比如 notebook 之类的插件,就安装个最新版本的 Anaconda,一般自带了有 Spyder,而且后面安装了插件也能生效。 插件安装 vim 插件安装 1 $ conda install spyder-vim -c conda-forge notebook 插件安装 1 $ conda install spyder-notebook -c conda-forge report 插件安装 1 $ conda install spyder-reports -c conda-forge terminal 插件安装 1 $ conda install spyder-terminal -c conda-forge 功能使用 查看变量值 类似于 Matlab 的 Workspace,在 Variable Explorer 里可以查看脚本运行了的相关变量有哪些,变量的值是什么。这个功能很有用,特别是打断点进行 Debug 的时候,能方便地看到对应变量值的变化。如下: 也可以对DataFrame变量进行双击查看: 画图 可以直接对 Array 类型的变量右键选择画什么图,如下: 比如画个 Plot 图: 这里如果没有设置图形后端,一般图不会自动显示出来,会在放在 Plots 那里。要想自动显示和对图进行一些简单操作的话,就需要设置这里: 总结 经过简单的使用,可以看出Spyder还是挺适合做数据分析相关的任务的,只是暂时对 VIM 用户不友好。