从零开始使用 Docker 打包 Django 开发环境 (3) Docker Compose 1. 基本概念 Docker Compose 是一个用来定义和运行复杂应用的 Docker 工具。使用 Docker Compose,可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成一切准备工作。Docker Compose 定位是 ‘defining and running complex applications with Docker’,前身是 Fig,兼容 Fig 云计算 2023-01-04 大白菜程序猿
ELK 日志搜索实践 本文主要简单介绍了 ELK 的技术栈,并给出了 Docker compose 的编排配置。阅读本文,可在本地通过 Docker 将 ELK 跑起来。后续会将 ELK 在服务器上进行部署,相关的配置再补充。 1. ELK 技术栈介绍 ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch,Logstash 和 Kibana。这三款软件都是开源软件,通常 云计算 2023-01-04 Escape
如何打包一个 Robot Framework 的 Docker 镜像 为了方便 CI 集成 UI 自动化测试,需要将 Robot Framework 运行环境打包为 Docker 镜像。本篇主要内容是一些与打包过程相关的配置和脚本。 1. 打包目录结构 1 2 3 4 5 6 tree . ├── docker-compose.yml ├── Dockerfile ├── google-chrome.repo ├── requirements_base.txt 1. 云计算 2023-01-04 宇宙之一粟
Windows 7 下 Docker 使用问题 1. 自定义 docker-machine 位置 Windows 7 下使用 docker ,默认将 docker-machine 存放在 C:usersyour name.dockermachinemachines 目录。为了不占用系统盘存储空间,可以通过如下方法修改:如果还没有创建虚拟机,可以通过设置 MACHINE_STORAGE_PATH 环境变量指定。然后,运行 Docker Quick 云计算 2023-01-04 捡田螺的小男孩
开发 Tips(5) 主要记录最近遇到的一些开发问题,解决方法。 1. Python 内存分析方法 主要涉及四个工具: memory_profile:分析每一行代码的内存使用量 objgraph:跟踪内存中的对象的关系 guppy:在运行时跟踪堆的使用情况 pyrasite:向进程中注入代码 分为两步: 模拟线上环境,使用 pyrasite 和 guppy 获取堆信息 根据上一步的信息定位到代码中的某一块,再使用 me 云计算 2023-01-04 醒在深海的猫
Kubernetes 之 Volumes 1. Docker 的存储卷 1.2 Docker 中的 Volume Docker Volume 将宿主机目录,挂载到容器中。在容器中修改的文件内容,将会被持久化到宿主机中。即时容器被删除,宿主机中的文件也会被保留。Docker 使用 /var/lib/docker/volumes/ 存储容器的 Volume。查看本地 Volume : 1 2 3 4 5 6 7 8 9 tree /var/l 云计算 2023-01-04 法医
Docker 如何拉取镜像 1. docker pull 拉取镜像 使用 docker pull {IMAGE_NAME} 拉取镜像时,有两种情况: IMAGE_NAME 前缀指向 registry Docker 会将 IMAGE_NAME 识别为指定仓库提供的镜像。例如,myregistry.io/space1/image1:latest ,Docker 会去 myregistry.io 指向的服务器请求镜像数据。一个 D 云计算 2023-01-04 共饮一杯
使用 Docker 运行 Tensorflow 前面写过一篇文档,如何在 CentOS 安装 GPU 驱动 ,这篇就来看看怎么利用 Docker 运行 Tensorflow 。 1. 检查当前 CPU 支持的 Tensorflow 版本 在不支持 AVX 指令的 CPU 上,运行 Tensorflow > 1.15 版本时,会报错,Illegal instruction (core dumped)。执行检测命令: 1 2 3 cat /p 云计算 2023-01-04 Escape
给 Kubernetes 配置 Proxy 通常,我们在主机上执行 export http_proxy/https_proxy 格式的命令,即可设置 Proxy 。但是主机上的设置在容器中并不会生效,下面提供了几种配置方法。 1. 配置 Docker 的代理 - Node 级 在需要使用 Proxy 的节点进行配置,下面以 Docker 为例: 创建配置文件 1 2 mkdir -p /etc/systemd/system/docker.s 云计算 2023-01-04 剑圣无痕
多架构下的 Docker 镜像 1. 开启 Docker 的 experimental 特性 这里先开启 Docker 的 experimental 特性,方便下文使用相关命令。编辑文件 vim ~/.docker/config.json ,增加如下内容: 1 2 3 4 { "experimental": "enabled", "debug": true } 注意,这里不是 /etc/docker/daemon.json 文件 云计算 2023-01-04 捡田螺的小男孩
如何在 Kubernetes 集群集成 Kata 1. Kata 解决什么问题 安全性和隔离性是 Kata Container 显著区别于 Docker Container 的地方。Kata Container 来源于 Intel Clear Containers 和 Hyper runV 项目的合并。Intel Clear Containers 借助 Intel VT-x 技术使用轻量级虚拟机提供容器,解决安全性问题,同时性能优异。而 Hype 云计算 2023-01-04 穿过生命散发芬芳
Daemonless 镜像构建工具 Kaniko 1. daemon-less 镜像构建工具 1.1 什么是 daemon-less 镜像构建工具 在 CICD 流程中,经常会涉及镜像构建,常规的做法是使用 Docker in Docker 或者 Docker out of Docker 进行构建。详情可以参考文档:如何在 Docker 中使用 Docker实际上,为了避免垄断,促进行业发展,基于 Docker 的镜像格式,早就指定了统一的 OC 云计算 2023-01-04 大树
Kuberntes 系统下的 `rm rf /`,执行完就可以跑路了 本文档主要用于展示 Docker 特权模式的危害,请谨慎操作。对于没有 CLI 操作权限的用户,可以拷贝示例的 Yaml,直接创建集群负载 Pod、Job、DaemonSet 等进行操作。 1. 直接删除全部资源 如果能登陆机器,收拾好东西,执行命令: 1 kubectl delete all --all --all-namespaces 但是也有可能没那么大权限,那么就试试下面的方法吧。下面的方 云计算 2023-01-04 Escape
基于 Kubernetes 的 Jenkins 服务也可以去 Docker 了 从原理上看,在 Kubernetes 集群中,Jenkins 都可以使用 Podman 进行镜像构建,本文主要以 Containerd 为例。 1. 去 Docker 给 CICD 带来新的挑战 在 CICD 场景下, 我们经常需要在流水线中构建和推送镜像。在之前的文档 《在 Kubernetes 上动态创建 Jenkins Slave》 中, 我描述了通过挂载 /var/run/docker.s 云计算 2023-01-04 LOVEHL^ˇ^
Docker 20.10.6 拉取某些镜像报错 unlinkat 使用的是 CentOS 7,内核版本 3.10.0-327 。 1. 查看当前 Docker 的版本 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 version Client: Docker Engine - Community Version: 20.10.6 AP 云计算 2023-01-04 法医
拉取 Dockerhub 镜像,无法连接 Cloudflare 1. 错误提示 在拉取镜像时,偶尔会碰到如下错误: 1 2 3 4 5 6 7 8 docker pull node:10.16-alpine 10.16-alpine: Pulling from library/node e7c96db7181b: Already exists 50958466d97a: Pulling fs layer 56174ae7ed1d: Pulling fs lay 云计算 2023-01-04 三掌柜
给 Kubernetes 添加 imagePullSecrets 1. 通过 kubectl create 添加 1 kubectl create secret docker-registry mypullsecret --docker-server=harbor.chenshaowen.com --docker-username=robot-test --docker-password=xxxxxx 通过 kubectl create 可以直接添加拉取镜像的凭 云计算 2023-01-04 法医
如何劫持 docker.io 的镜像流量到私有仓库 1. 自签 *.docker.io 域名证书 1.1 创建 CA 证书 生成 CA 证书私钥 1 openssl genrsa -out ca.key 4096 生成 CA 证书 1 2 3 4 openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Person 云计算 2023-01-04 法医
如何设置端口仅对指定 IP 开放访问 1. 主机服务端口 1 2 iptables -I INPUT -p tcp --dport 80 -j DROP iptables -I INPUT -p tcp -s 1.2.3.4 --dport 80 -j ACCEPT 这里仅允许 1.2.3.4 访问本地主机的 80 端口。 2. Docker 服务端口 对于类似 docker run -d -p 80:80 shaowenchen/d 云计算 2023-01-04 共饮一杯
如何优化Docker 镜像安全性 前言 当你是刚开始使用 Docker 的新手时,你很可能会创建不安全的 Docker 镜像,使攻击者很容易借此接管容器,甚至可能接管整个主机,然后渗透到你公司的其他基础设施中。 可以被滥用来接管你的系统的攻击向量有很多,例如: 下面的各个章节讲解了能够优化你的镜像安全性的各种方法。它们是按重要性 / 影响程度排序的,也就是说排名靠前的方法更重要。 避免泄露构建密钥 构建密钥是只在构建 Docker 云计算 2022-12-06 Sriram