使用docker管理谷歌物件仓库gcr上的镜像

创建服务账户 首先可以到「 IAM管理 -> 服务帐户」新增帐户。在新增完成后,会得到一把 key,将它下载后请妥善保管,因为所有相关的身份认证都会用到,这个 key 在下载后就无法继续下载了。 授权 接着到「IAM -> 新增」成员,并且选择角色,这里选择「Cloud Storage -> 储存空间物件检视者」,让此帐户具备有 read(读取) storage 的功能。 登录 bash 1 2 cat KEY-FILE | docker login -u KEY-TYPE --password-stdin \ https://LOCATION-docker.pkg.dev GCP 的 KEY-TYPE 通为 json_key,但这里包含两种类型 _json_key 和 _json_key_base64 KEY-FILE 就是下载的 Service account key 的文件 bash 1 2 cat KEY-FILE | docker login -u _json_key --password-stdin \ https://LOCATION-docker.pkg.dev 通常 Service account key 文件内容如下 yaml 1 2 3 4 5 6 7 8 9 10 11 12 13 { "type": "service_account", "project_id": "project2024-0101", "private_key_id": "bdfsd612779509406bb8452c3ek12d730ed547e722d", "private_key": "-----BEGIN PRIVATE KEY----....

 ·  · 

Docker中的多进程管理 s6-overlay

什么是容器中的多进程管理 在容器中的主进程 (main running process) 是指 Dockerfile中 ENTRYPOINT 或 CMD 指定运行的命令,通常情况下一个进程(服务)为一个容器;也存在一种场景,就是主进程会fork多个子进程,例如nginx,不过这种多进程通常为nginx主进程进行管理。而一些场景下,我们的业务本身就需要多个启用独立的多个进程。 在Docker官方提到了在容器中运行多个服务的方式,官方提出,应该避免这种情况 but to get the most benefit out of Docker, avoid one container being responsible for multiple aspects of your overall application. 但也给出了如何管理多进程的一种思路, Use a wrapper script Use Bash job controls Use a process manager 下面就通过官方给出的这三种方式阐述容器中的多进程管理 Use a wrapper script 对于使用脚本来管理多进程来说,本质上是可以实现多进程的启动,但是你没法去监控(管理)多个进程的运行时,例如 Nginx + PHP 模式, PHP或nginx全部挂掉,只要脚本还在运行,那么这个容器的生命周期还是处于Running Use Bash job controls 这种模式是利用了Bash的后台模式进行短暂的切换进程,但有些镜像不提供Bash这时应该怎么办 Use a process manager 进程管理器,通常情况下大家想到的就是顶顶大名的 supervisor 和 systemd,但这两个程序运行的环境十分苛刻,例如 supervisor 是Python开发的程序,运行需要依赖 Python;而 systemd 的运行条件更为苛刻,例如需要额外运行dbus-damon进行注册到dbus总线之上,这种进程管理器可能运行的进程比我们要管理的进程都要多。在这种场景下,有一个部署简单,配置简单,无依赖的轻量级容器多进程管理器 s6-overlay...

 ·  · 

alpine安装网络工具

telnet:busybox-extras net-tools: net-tools tcpdump: tcpdump wget: wget dig nslookup: bind-tools curl: curl nmap: nmap wget ifconfig nc traceroute.. : busybox ssh: openssh-client ss iptables: iproute2 ethtool: ethtool yaml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 FROM alpine MAINTAINER RUN sed -i 's@http://dl-cdn.alpinelinux.org/@https://mirrors.aliyun.com/@g' /etc/apk/repositories RUN apk add --no-cache --virtual .persistent-deps \ curl \ tcpdump \ iproute2 \ bind-tools \ ethtool \ busybox-extras \ libressl \ openssh-client \ busybox CMD [ "tail", "-f" ]

 ·  · 

windows下Docker Desktop安装管理

检查要求 Windows 10 企业版、专业版或教育版 (必须windows10 1903版本以上)版本号 18362.1049+ 或 18363.1049+ ,次版本#大于.1049。最好是最新版(新版windows可以hype-v wsl2 vmvare共存,但安卓模拟器目前还没稳定的共存版本)。建议使用wsl2,安装包容量会比起hype-v小很多 。 Windows开启wsl2,建议 Windows 10 2004(版本号不低于 19041.264),可wsl2与vmvare共存。 CPU 支持并开启虚拟化(Intel VT-c 或 AMD SVM)。 最少 4 GB 内存。 对于专业版、企业版、教育版可以使用docker desktop wsl2模式,此处无需开启Hype-v 对于Win10 家庭版,Win10 19041.264之前版本,及 Win7 8用户,可以使用docker desktop Hype-v 后端。 修改安装盘 Docker Desktop 默认安装到 C:\Program Files\Docker 并不可更改,这样很不友好,可以通过软连接的方式改变Docker Desktop 默认安装盘。 text 1 mklink /J "C:\Program Files\Docker" "D:\Program Files\Docker" 限制wsl2运行最大内存 WSL 是 Microsoft 提供的一项功能,可以使开发人员能够直接在 Windows 上运行 GNU/Linux 环境,无需修改,无需传统虚拟机或双引导设置,减少了开发人员的使用复杂度 在 Docker Desktop 使用了 WSL 2 中的动态内存分配特性,极大地提高了资源消耗。这意味着,Docker Desktop 仅使用其所需的 CPU 和内存资源量,同时使 CPU 和内存密集型任务(例如构建容器)运行得更快。...

 ·  · 

docker Registry使用

docker registry介绍 Registry用于保存docker镜像,包括镜像的层次结构和元数据,用户可自建Registry,也可使用官方的Docker Hub 分类 Sponsor Registry:第三方的registry,供客户和Docker社区使用 Mirror Registry:第三方的registry,只让客户使用 Vendor Registry:由发布Docker镜像的供应商提供的registry Private Registry:通过设有防火墙和额外的安全层的私有实体提供的registry 一个docker Registry上拥有两种功能: 提供镜像存储的仓库。 提供用户获取镜像时的认证功能。 同时提供当前服务器上所有可用镜像的搜索索引。 一个docker镜像仓库有仓库的名称,等同于yum的repostory。通常简称为repo。为了使的镜像和应用程序版本之间有意义上的关联关系。在docker一个仓库通常只存放一个应用程序的镜像。因此,这个仓库名就是应用程序名。通过给每个镜像额外添加一个组件叫tag,来标识每一个镜像。通常镜像名称:标签repo_name:tag才能唯一标识一个镜像。 为了可以快速创建registry,docker专门提供了一个程序包 docker-distribution 。https://hub.docker.com/r/distribution/registry/ regustry自身运行在容器中,而容器的文件系统会随着容器生命周期终止而删除,因此需要给registry定义存储卷,使用网络存储。 在yum的extras仓库有一个docker-registry的程序包。docker-distribution的主配置文件在 /etc/docker-distribution/registry/config.yml,所有上传的镜像存放在/var/lib/registry 。 sh 1 2 3 4 5 6 7 8 9 10 11 12 $ yum info docker-registry Available Packages Name : docker-registry Arch : x86_64 Version : 0.9.1 Release : 7.el7 Size : 123 k Repo : extras/7/x86_64 Summary : Registry server for Docker URL : https://github....

 ·  ·