docker registry

docker registry install registry # sample, https://docs.docker.com/registry/configuration/ cat > /usr/local/etc/docker-registry-config.yml << EOF version: 0.1 log: fields: service: registry storage: delete: enabled: true blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry http: addr: :5000 headers: X-Content-Type-Options: [nosniff] health: storagedriver: enabled: true interval: 10s threshold: 3 EOF # https://hub.docker.com/_/registry # docker docker run -d \ --restart=always \ -v /usr/local/etc/docker-registry-config.yml:/etc/docker/registry/config.yml \ -p 5000:5000 \ --name docker-registry \ -v docker-registry:/var/lib/registry \ registry:2.8.3 # podman podman run -d \ -v /usr/local/etc/docker-registry-config.yml:/etc/docker/registry/config.yml \ -p 5000:5000 \ --name registry \ -v docker-registry:/var/lib/registry \ registry:2.8.3 buildah tag de3ebb1b260b registry.wiloon.com/pingd-proxy:v0.0.1 buildah push registry.wiloon.com/pingd-proxy:v0.0.1 podman pull registry.wiloon.com/pingd-proxy:v0.0.1 registry.wiloon.com/pingd-proxy registry.wiloon.com/ping-proxy docker 测试 sudo docker image tag hello-world registry.wiloon.com/myfirstimage sudo docker image ls sudo docker push registry.wiloon.com/myfirstimage sudo docker image rm hello-world sudo docker pull registry.wiloon.com/myfirstimage sudo docker image ls nginx config ...

Created 10106-10-10 · Updated 10106-10-10 · 2 min · 240 words · -

docker save 与 docker export 的区别, docker 镜像 导出

docker save 与 docker export, docker 镜像 导出 导出 # save & load docker save f1905dce9659 > kafka.tar # 另外一种 save 语法 docker save -o images.tar postgres:9.6 # 从 tar 包加载镜像而不是 stdin, --input, -i: 指定导入的文件,代替 STDIN。 docker load -i foo.tar docker load < kafka.tar # docker load 之后 repository 和 tag 都是 none, 重新打一下 tag docker tag f1905dce9659 wurstmeister/kafka:latest # export & import docker export f299f501774c > hangger_server.tar docker import - new_hangger_server < hangger_server.tar docker save 和 docker export 的区别: docker save 保存的是镜像 (image) ,docker export 保存的是容器 (container) ; docker load 用来载入镜像包,docker import 用来载入容器包,但两者都会恢复为镜像; docker load 不能对载入的镜像重命名,而 docker import 可以为镜像指定新名称。 ...

Created 13136-04-13 · Updated 13136-04-13 · 1 min · 102 words · -

nexus docker repo

nexus 配置太复杂 用 https://hub.docker.com/_/registry 作为 docker registry wiloon.com/docker/registry docker hosted repo create repository select recipe: docker (hosted) name: docker-repo-0 HTTP: 5001, 仓库单独的访问端口(例如:5001) allow anonymous: yes Docker Registry API Support> Enable Docker V1 API> Allow clients to use the V1 API to interact with this repository: yes Hosted> Deployment policy: Allow redeploy nexus docker proxy Name: dockerhub-proxy Remote storage 配置成 https://registry-1.docker.io Docker Index 选择 Use Docker Hub 保存 创建一个 Docker Group Repository ...

Created 14146-03-14 · Updated 14146-03-14 · 1 min · 139 words · -

buildah

buildah # removes all dangling images, same as docker prune podman image prune # remove image buildah rmi 0d2d0133941b sudo pacman -S fuse-overlayfs sudo pacman -S buildah # login buildah login container.wiloon.com buildah login --tls-verify=false container.wiloon.com # buildah needs to run as root!!! # list all the images buildah images # build ### buildah bud -f Dockerfile -t <tag0> . buildah bud -f Dockerfile -t fedora-httpd . buildah push registry.wiloon.com/pingd-proxy:v0.0.1 # list all containers buildah containers buildah run <container name> buildah run $container -- dnf -y install java buildah rm $newcontainer buildah push fedora-bashecho docker-daemon:fedora-bashecho:latest container0=$(buildah from timer0) buildah run $container0 http: server gave HTTP response to HTTPS client https://github.com/containers/buildah/issues/4788 ...

Created 20206-01-20 · Updated 20206-01-20 · 1 min · 114 words · -

docker btrfs

docker btrfs 镜像分层与Btrfs共享 Docker利用Btrfs subvolumes和快照来管理镜像和容器数据层的硬盘组件(on-disk components)。Btrfs subvolumes看起来像一个正常的Unix文件系统。因此,他们可以有自己的内部目录结构,挂钩到更广泛的Unix文件系统。 subvolumes更新文件时涉及写时拷贝操作,写入新文件时涉及从一个底层存储池来按需分配空间的操作。它们既能嵌套也能做快照。下图显示了4个subvolumes。“subvolume 2″和"subvloume 3″是嵌套的,而"subvolume 4"显示它自己的内部目录树。 使用btrfs驱动的Docker主机创建镜像和容器的过程如下: 1.镜像的基础数据层存储在/var/lib/docker/btrfs/subvolumes的Btrfs subvloume中。 2.后续的镜像数据层存储为subvolume或快照的父级数据层的一个Btrfs快照中。 https://www.centos.bz/2016/12/docker-and-btrfs-in-practice/

Created 14146-04-14 · Updated 14146-04-14 · 1 min · 16 words · -

go > docker

‘go > docker’ gOOS=linux GOARCH=arm go build . docker build -t registry.wiloon.com/nj4xx-data:v0.1.0 . docker push registry.wiloon.com/nj4xx-data:v0.1.0 docker pull registry.wiloon.com/nj4xx-data:v0.1.0

Created 28286-03-28 · Updated 28286-03-28 · 1 min · 19 words · -

telegraf

telegraf # archlinux, telegraf yay -S telegraf-bin ubuntu && debian # influxdata-archive_compat.key GPG fingerprint: # 9D53 9D90 D332 8DC7 D6C8 D3B9 D8FF 8E1F 7DF8 B07E wget -q https://repos.influxdata.com/influxdata-archive_compat.key echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list sudo apt-get update && sudo apt-get install telegraf binary https://portal.influxdata.com/downloads/ vim /etc/telegraf/telegraf.conf [global_tags] [agent] interval = "10s" round_interval = true metric_batch_size = 1000 metric_buffer_limit = 10000 collection_jitter = "0s" flush_interval = "10s" flush_jitter = "0s" precision = "" # 修改主机名 hostname = "foo" omit_hostname = false [[outputs.influxdb]] urls = ["http://influxdb.wiloon.com:32086"] # 注意修改 database database = "monitor" [[inputs.cpu]] percpu = true totalcpu = true collect_cpu_time = false report_active = false [[inputs.disk]] ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] [[inputs.diskio]] [[inputs.kernel]] [[inputs.mem]] [[inputs.processes]] [[inputs.swap]] [[inputs.system]] [[inputs.net]] [[inputs.netstat]] [[inputs.linux_sysctl_fs]] inputs.linux_sysctl_fs https://www.kernel.org/doc/Documentation/sysctl/fs.txt ...

Created 16166-02-16 · Updated 16166-02-16 · 3 min · 553 words · -

aliyun oss, 对象存储, ossutil

aliyun oss, 对象存储, ossutil aliyun oss, ossutil install ossutil sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash # 生成配置文件, stsToken 可以置空 ossutil config ./ossutil cp a -f oss://my-bucket/path ./ossutil64 cp /root/tmp/wordpress.sql -f oss://wiloon-backup/ https://help.aliyun.com/document_detail/50561.html?spm=a2c4g.11186623.6.1283.2e0655b7qtA1Md https://help.aliyun.com/document_detail/120075.html

Created 30306-01-30 · Updated 30306-01-30 · 1 min · 35 words · -

docker install

docker install ubuntu # apt 从仓库里安装, 落后两个小版本, 也算比较新了, 建议从官方源安装 sudo apt install docker.io curl, 配置官方源, 一般会高几个小版本 https://docs.docker.com/engine/install/ubuntu/ # 删掉旧版本的包, 有冲突的包 for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo docker run hello-world https://docs.docker.com/install/linux/docker-ce/centos/ ...

Created 28286-11-28 · Updated 28286-11-28 · 1 min · 194 words · -

PD 充电协议

PD 充电协议 thinkpad的 PD 充电协议有可能和通用的 协议 不同, 某些情况下不能握手充电. 紫米65W充电器使用了USB PD中的PPS规范,而部分笔记本电脑型号较早,未有支持PPS协议规范,因为使用紫米65W充电器可能会出现充电协议“握手”失败,进而导致无法正常充电 thinkpad x1 carbon Power Adapter** [1][2] • 45W USB-C® (2-pin) AC adapter, supports PD 3.0, 100-240V, 50-60Hz • 45W USB-C (3-pin) AC adapter, supports PD 3.0, 100-240V, 50-60Hz • 65W USB-C (2-pin) AC adapter, supports PD 3.0, 100-240V, 50-60Hz • 65W USB-C slim (2-pin) AC adapter, supports PD 3.0, 100-240V, 50-60Hz • 65W USB-C slim (3-pin) AC adapter, supports PD 3.0, 100-240V, 50-60Hz ...

Created 25256-11-25 · Updated 25256-11-25 · 1 min · 73 words · -

aliyun docker

aliyun docker https://cr.console.aliyun.com/cn-qingdao/mirrors 安装/升级Docker客户端 推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce 配置镜像加速器 针对Docker客户端版本大于 1.10.0 的用户 您可以通过修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json «-‘EOF’ { “registry-mirrors”: [“https://xxxxxx.mirror.aliyuncs.com”] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

Created 3036-10-03 · Updated 3036-10-03 · 1 min · 35 words · -

docker mirror

docker mirror 登录容器Hub服务的控制台,左侧的加速器帮助页面就会显示为你独立分配的加速地址。 https://yq.aliyun.com/articles/29941 https://www.docker-cn.com/registry-mirror 永久性保留更改,您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。 vim /etc/docker/daemon.json #(create it if it does not exist) { "registry-mirrors": ["https://registry.docker-cn.com"], "insecure-registries": [ "registry.wiloon.com" ] } ### restart docker service # 修改保存后重启 Docker 以使配置生效。 sudo systemctl daemon-reload sudo systemctl restart docker.service ### 查看 sudo docker info daemon.json { "registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"] } http: server gave HTTP response to HTTPS client https://stackoverflow.com/questions/49674004/docker-repository-server-gave-http-response-to-https-client { "insecure-registries":["192.168.99.100:5000"] }

Created 15156-07-15 · Updated 15156-07-15 · 1 min · 65 words · -

rancher

rancher https://rancher.com/docs/rancher/v2.6/en/ RKE: Rancher Kubernetes Engine EKS: Amazon EKS (Elastic Kubernetes Service) GKE: Google Kubernetes Engine https://github.com/rancher/rancher https://helm.sh/ https://k3s.io/ k3s k3s 将安装 Kubernetes 所需的一切打包进仅有 XXMB 大小的二进制文件中。并且,为了减少运行 k8s 所需的内存,删除了很多不必要的驱动程序,并用附加组件对其进行替换。这样,它只需要极低的资源就可以运行且安装所需的时间也非常短,因此它能够运行在树莓派等设备上面,即 master 和 agent 运行在一起的模式。 裁剪功能 过时的功能和非默认功能 过时的功能和非默认功能 Alpha 功能 过时的功能和非默认功能内置的云提供商插件 过时的功能和非默认功能内置的存储驱动 过时的功能和非默认功能 Docker 项目特点 使用 SQLite 作为默认数据存储替代 etcd,但 etcd 仍然是支持的 内置了 local storage provider、service load balancer 等 所有 k8s 控制组件如 api-server、scheduler 等封装成为一个精简二进制程序,单进程即可运行 删除内置插件,比如 cloudprovider 插件和存储插件等 减少外部依赖,操作系统只需要安装较新的内核以及支持 cgroup 即可 缺点不足 因为在高可用的场景中,其没有办法做到或很难做到。所以如果你要进行大型的集群部署,那么我建议你选择使用 K8s 来安装部署。如果你处于边缘计算等小型部署的场景或仅仅需要部署一些非核心集群进行开发/测试,那么选择 k3s 则是性价比更高的选择。 在单个 master 的 k3s 中,默认使用的是 SQLite 数据库存储数据的,这对于小型数据库十分友好,但是如果遭受重击,那么 SQLite 将成为主要痛点。但是,Kubernetes 控制平面中发生的更改更多是与频繁更新部署、调度 Pod 等有关,因此对于小型开发/测试集群而言,数据库不会造成太大负载。 ...

Created 9096-06-09 · Updated 9096-06-09 · 2 min · 256 words · -

docker basic, commands

docker basic, commands commands # Docker images by tag docker rmi $(docker images --filter=reference="tag_name_0" -q) # Docker查看容器完整的容器 ID 和镜像 ID docker ps -a --no-trunc docker exec nexus3 cat /nexus-data/admin.password docker ps --filter"name=test-nginx" docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}" docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.Status}}\t{{.Names}}" docker ps --format "table {{.ID}}\t{{.IMAGE}}\t{{.CREATED}}\t{{.STATUS}}\t{{.NAMES}}" docker inspect xxx docker container update --restart=no <containername> # 修改 docker 容器为开机启动 docker container update --restart=always container_0 # 查看 volume 目录 docker info | grep "Docker Root Dir" 批量删除镜像 docker rmi $(docker images | grep "name0" | awk '{print $3}') docker rmi -f $(docker images | grep "name0" | awk '{print $3}') docker restart foo # 列出所有的容器 ID docker ps -aq # 停止所有的容器 docker stop $(docker ps -aq) # 删除所有的容器 docker image ls docker rm $(docker ps -aq) # 删除所有的镜像 docker rmi $(docker images -q) # 复制文件 docker cp mycontainer:/opt/file.txt /opt/local/ docker cp /opt/local/file.txt mycontainer:/opt/ docker port docker port :列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口。 ...

Created 27276-01-27 · Updated 27276-01-27 · 6 min · 1129 words · -

ansible playbook

ansible playbook ansible playbook 是一个特定格式的 yaml 文件, 不要直接把搜到的 ansible 文档里的 例子直接粘贴到里面, ansible playbook 至少要包含 hosts tasks, ansible 文档里找到的的 task 要粘贴到 tasks 部分 如果出现奇怪的异常, 比如: ‘ansible.builtin.shell’ is not a valid attribute for a Play, 检查 一下 playbook 文件 是不是标准格式 . ansible playbook sample - name: deploy sample hosts: all vars: ansible_ssh_private_key_file: ~/.ssh/id_ed25519 tasks: - name: Pull an image community.docker.docker_image_pull: name: 192.168.50.111:5000/foo-mock:v0.0.1 platform: amd64 ansible_ssh_private_key_file: config ssh private key path ansible-galaxy collection ansible-galaxy collection list ansible-galaxy collection install community.docker # 安装之后才能用 docker - name: Pull an image community.docker.docker_image_pull: name: pacur/centos-7 # Select platform for pulling. If not specified, will pull whatever docker prefers. platform: amd64 end play ...

Created 9096-08-09 · Updated 9096-08-09 · 2 min · 384 words · -

service mesh

service mesh 微服务 wiloon.com/microservice service mesh 下一代微服务架构 Service Mesh (服务网格) 被认为是下一代微服务架构,Service Mesh并没有给我们带来新的功能,它是用于解决其他工具已经解决过的服务网络调用、限流、熔断和监控等问题, 只不过这次是在 Cloud Native 的 kubernetes 环境下的实现。 Willian Morgan 对 Service Mesh 的解释。 A Service Mesh is a dedicated infrastructure layer for handling service-to-service communication. It’s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application. In practice, the Service Mesh is typically implemented as an array of lightweight network proxies that are deployed alongside application code, without the application needing to be aware. ...

Created 10106-10-10 · Updated 10106-10-10 · 2 min · 288 words · -

ansible basic command

ansible basic command commands # 临时的 inventory file ansible -i '192.168.50.111,' all -m shell -a 'whoami' -u root ansible-galaxy collection install community.general # localhost ansible localhost -m shell -a 'ls' # 指定私钥 --key-file ansible -i 'wiloon.com,' all -m shell -a 'systemctl stop enx-api' -u root --key-file ~/.ssh/id_ed25519_w10n hibernate ansible -i '192.168.50.31,' all -m shell -a 'sudo systemctl hibernate' -u user0 install Installing Ansible on Ubuntu sudo apt update sudo apt install software-properties-common sudo add-apt-repository --yes --update ppa:ansible/ansible sudo apt install ansible macos brew install ansible ansible 配置文件 /etc/ansible/ansible.cfg 文件内容 [defaults] interpreter_python = auto_legacy_silent # gather 超时时间 gather_timeout=30 inventory 默认的 Inventory 路径 /etc/ansible/hosts ...

Created 13136-05-13 · Updated 13136-05-13 · 2 min · 382 words · -

aws-cli

aws-cli install # archlinux pacman -Sy aws-cli # macos https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html aws console> iam> user> w10n_ec2>create access key> cli> commands aws configure # default region name: ap-southeast-1 # default output format: json cat ~/.aws/credentials cat ~/.aws/config aws ec2 describe-instances --instance-ids i-xxxxxxxxxxxxxxxxx --query 'Reservations[*].Instances[*].{ID:InstanceId,State:State.Name}' --output table

Created 24246-02-24 · Updated 24246-02-24 · 1 min · 44 words · -

OLAP, OLTP

OLAP, OLTP http://www.cnblogs.com/beyondstorm/archive/2006/08/12/475011.html OLAP和OLTP的区别(基础知识) 联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。 当今的数据处理大致可以分成两大类: 联机事务处理OLTP (on-line transaction processing) 、联机分析处理OLAP (On-Line Analytical Processing) 。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。下表列出了OLTP与OLAP之间的比较。 OLTP OLAP 用户 操作人员,低层管理人员 决策人员,高级管理人员 功能 日常操作处理 分析决策 DB 设计 面向应用 面向主题 数据 当前的, 最新的细节的, 二维的分立的 历史的, 聚集的, 多维的集成的, 统一的 存取 读/写数十条记录 读上百万条记录 工作单位 简单的事务 复杂的查询 用户数 上千个 上百个 DB 大小 100MB-GB 100GB-TB

Created 17176-02-17 · Updated 17176-02-17 · 1 min · 52 words · -

archlinux k8s

archlinux k8s disable swap # check swap usage, if no output, swap is disabled swapon --show # check swap status systemctl list-units --type=swap # disable swap sudo swapoff -a # disable zram swap sudo systemctl mask dev-zram0.swap sudo pacman -Syu reboot sudo pacman -S containerd kubeadm kubelet kubectl curl jq open-iscsi reboot # 如果提示 : iptables-nft-1:1.8.11-2 and iptables-1:1.8.11-2 are in conflict. Remove iptables? [y/N] # 删除 iptables, Kubernetes,推荐使用 iptables-nft,因为 Kubernetes 自 v1.13 起支持 iptables 的 nftables 后端(iptables-nft),而且 nftables 是 Linux 内核中更现代的防火墙实现,逐渐取代传统 iptables。此外,Arch Linux 的默认配置倾向于 nftables。 # 查看 containerd 版本 ctr version lsmod|grep br_netfilter lsmod|grep overlay # 在安装 kubelet 的时候 br_netfilter 已经设置 好了, k8s.conf 里不需要再加 br_netfilter cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay EOF sudo modprobe overlay # 安装 kubeadm 的时候这三个变量会自动设置, 输出应该都是 1 sysctl net.bridge.bridge-nf-call-iptables sysctl net.bridge.bridge-nf-call-ip6tables sysctl net.ipv4.ip_forward # containerd config sudo mkdir /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml vim /etc/containerd/config.toml # 打开文件,找到 `[plugins.'io.containerd.cri.v1.runtime'.containerd.runtimes.runc.options]` # 在下面加 一行 SystemdCgroup = true # 配置 containerd 使用 systemd 作为 cgroup 驱动 # 检查 containerd 的 状态 sudo systemctl status containerd # 重启 containerd sudo systemctl restart containerd sudo systemctl enable --now containerd sudo systemctl status kubelet systemctl enable kubelet.service systemctl enable --now iscsid kube-vip kube-vip 相关的命令要在每个 control plane 节点上执行 ...

Created 23236-12-23 · Updated 23236-12-23 · 4 min · 663 words · -