![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
docker
docker
竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。
这个作者很懒,什么都没留下…
展开
-
image-syncer
一个简单、易用的批量镜像迁移和镜像同步复制工具,支持几乎所有目前主流的基于搭建的镜像存储服务,例如ACR、Docker、Hub、Quay、自建Harbor等,目前已经初步经过了TB级别的生产环境镜像迁移验证特性支持多对多镜像仓库同步支持基于 Docker Registry V2 搭建的 docker 镜像仓库服务 (如 Docker Hub、 Quay、 阿里云镜像服务 ACR、 Harbor等)同步只经过内存和网络,不依赖磁盘存储,同步速度快。原创 2023-05-26 15:37:36 · 1062 阅读 · 0 评论 -
Watchtower—自动更新docker镜像与容器
Watchtower是一个可以实现自动化更新Docker基础镜像与容器的实用工具。它监视正在运行的容器以及相关的镜像,当检测到registry中的镜像与本地的镜像有差异时,它会拉取最新镜像并使用最初部署时相同的参数重新启动相应的容器,原创 2023-03-16 00:16:09 · 2335 阅读 · 0 评论 -
OCI镜像制作工具之skopeo
skopeo 是一个命令行工具,用于对容器镜像和镜像库执行各种操作,支持使用 OCI 镜像与原始的 Docker v2 镜像。可对容器镜像和容器存储进行操作。在没有dockerd的环境下,使用操作镜像是非常方便的。Skopeo 能够在容器注册表上检查存储库并获取图片层。Inspect 命令获取存储库的清单,它能够向您显示关于整个存储库或标记的类似 docker inspect 的 json 输出。与 docker inspect 不同,这个工具可以帮助您在拉取存储库或标记之前(使用磁盘空间)收集有用的信息。原创 2023-03-08 10:34:14 · 1371 阅读 · 1 评论 -
containerd pull过程分析
注:在上面拉取镜像时可以通过 ctrl+c 中断下载,保持未完成状态,这样可能到下载过程数据断点续传的机制,这也就是 content 服务 ingest 实现。原创 2023-03-07 02:20:05 · 572 阅读 · 0 评论 -
docker中镜像各ID之间的关系和计算-layerID-diffID-chainID-cacheID的计算
Overlay2比overlay更加高效,因为overlay2优化了inode的利用。layerID和diffID的对应关系在diffid-by-digest和v2metadata-by-diffidchainID主要存在于/var/lib/docker/image/overlay2/layerdb/sha256/,cacheID主要存在于/var/lib/docker/overlay2/转载 2023-03-07 02:18:36 · 353 阅读 · 0 评论 -
docker imageID计算
docker镜像id都保存在/var/lib/docker/image/overlay2/imagedb/content/sha256下面,都是一些以sha256sum计算文件内容得出的哈希值的文件。parent包含了最高层的chainID,也就是说通过最高层的chainID,再找其真正的cache-id,发现里面有init-id、mount-id、parent三个文件。init-id存储了init层的编号,和mount-id一致。原创 2023-03-07 02:17:53 · 364 阅读 · 0 评论 -
docker-storage-setup 配置docker 后端存储
背景CentOS 7已经集成了Docker Engine, 并且提供了docker-storage-setup服务来帮助配置docker服务的devicemapper存储驱动,如果该驱动自动配置失败,则docker服务的存储驱动会降级为lvm-loop驱动。由于loop设备的缓存问题,lvm-loop模式不适合生产环境CentOS 7的安装程序默认使用lvm模式管理磁盘,如果仅有一块磁盘,安装程序会在该物理卷(pv)上创建centos卷组(vg), 并同时使用所有空间创建home和root逻辑卷(lv原创 2022-04-13 00:29:39 · 606 阅读 · 1 评论 -
docker registry私库镜像查看与删除
1、列出所有的镜像curl -X GET http://192.168.37.100:5000/v2/_catalog| jq2、列出指定镜像的所有标签2.1查看镜像busybox下的tagcurl -X GET http://192.168.37.100:5000/v2/busybox/tags/list3、使用delete-docker-registry-image进行删除镜像3.1安装方法curl https://raw.githubusercontent.com/burnettk/原创 2022-03-30 10:22:00 · 830 阅读 · 0 评论 -
docker+DeviceMapper方案
docker+DeviceMapper方案预备devicemapper 要求需要安装 lvm2和 device-mapper-persistent-data切换容器存储驱动,需要使用docker save -o 机器镜像 ,然后push 镜像到docker Hub或者私有仓库配置DeviceMapper作为docker存储驱动配置loop-lvm模式(测试环境)loop-lvm模式利用loopback机制,该机制该允许将本地磁盘上的文件读取和写入就像一个实际的物理磁盘或块设备。然而loo原创 2022-03-28 03:58:47 · 802 阅读 · 0 评论 -
2022 年要考虑的 7 种 Docker 替代方案
许多企业都采用容器来进行开发和管理稳定的应用程序,Docker 是该领域功能最丰富且使用最广泛的工具之一,已有数百万应用程序在使用它。Docker 本身有着强大的独立生态系统,并提供了一个广泛的工具包来管理容器化过程,但 Docker 还有其他替代品,它们提供了独特的用例和功能。本文深入探讨了 Docker 七个替代品,其中包括一系列综合平台,如 Docker 以及可以作为 Docker 生态系统组件替代品的工具等。1. PodmanPodman 是 RedHat 开发的一个无守护程序的开源 Linu转载 2022-01-26 09:20:22 · 934 阅读 · 0 评论 -
crictl使用实例说明
crictl1. 简介crictl 是 CRI 兼容的容器运行时命令行接口。 你可以使用它来检查和调试 Kubernetes 节点上的容器运行时和应用程序crictl:子命令子命令: attach Attach to a running container create Create a new container exec Run a command in a running contai原创 2022-01-10 09:09:27 · 2570 阅读 · 0 评论 -
ctr镜像导入报错ctr: content digest sha256:xxxxxx not found
现象:直接导入j镜像可能会出现类似于 ctr: content digest sha256:xxxxxx not found解决办法:拉取镜像、导出镜像时,都加上--all-platforms 时,最后在用ctr i import nginx.tar.gz原创 2022-01-08 13:02:03 · 4991 阅读 · 0 评论 -
k8s集群替换runc:docker->containerd
1. 基于kubeadm安装的kubelet使用kubeadm查看默认配置:#kubeadm config print init-defaults --component-configs KubeletConfiguration如果要将运行时从默认的docker切换到containerd,那么需要修改文件:/var/lib/kubelet/kubeadm-flags.env在KUBELET_KUBEADM_ARGS中添加以下参数:--container-runtime=remote --co原创 2021-11-07 23:49:05 · 787 阅读 · 0 评论 -
containerd常用命令
ctr -n k8s.io images ls #查看镜像ctr -n k8s.io images pull -k #拉取镜像,拉取的时候忽略校验ctr -n k8s.io images pull --tlscacert /etc/…/tls.crt #拉取镜像,拉镜像的时候使用tls证书进行验证#将离线镜像tar包导入到本地镜像缓存中,打tag并push镜像到镜像仓库ctr -n k8s.io i import containerd-build-aar原创 2021-11-07 23:38:18 · 3140 阅读 · 0 评论 -
coredns访问证书错误
kubectl describe pod -n kube-system coredns-757569d647-qj8ts日志:Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "b7ea16c5b21e06069d1418b322e04bd2da482acdf21f863f47c96a80c551eab5" network for pod "coredns-原创 2021-10-24 01:54:57 · 660 阅读 · 0 评论 -
kubectl 命令执行报错:(Unable to connect to the server: x509: certificate signed by unknown authority )
现象: kubectl get nodes执行报错:kubectl get nodesUnable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")问题:原创 2021-10-24 01:51:46 · 3446 阅读 · 0 评论 -
kubeadm拉取镜像脚本
!/bin/bash# 获取要拉取的镜像信息,images.txt是临时文件kubeadm config images list > images.txt# 替换成registry.aliyuncs.com/google_containers的仓库,该仓库国内可用,和k8s.gcr.io的更新时间只差一两天sed -i 's@k8s.gcr.io@registry.aliyuncs.com/google_containers@g' images.txt 拉取各镜像cat images.原创 2021-10-23 21:37:48 · 539 阅读 · 0 评论 -
Warning: Stopping docker.service, but it can still be activated by: docker.socket
现象使用docker时,每次停止docker systemctl stop docker 命令执行完都会提示Warning: Stopping docker.service, but it can still be activated by: docker.socket原因目前找到的问题原因是:This is because in addition to the docker.service unit file, there is a docker.socket unit file… this原创 2021-10-15 15:40:01 · 389 阅读 · 0 评论 -
docker修改容器的挂载目录
1. 修改配置文件(需停止docker服务)停止docker服务systemctl stop docker.service(关键,修改之前必须停止docker服务)vim /var/lib/docker/containers/container-ID/config.v2.json修改配置文件中的目录位置,然后保存退出 "MountPoints":{"/home":{"Source":"/docker","Destination":"/home","RW":true,"Name":"","Dri原创 2021-09-30 13:44:52 · 204 阅读 · 0 评论 -
nsenter 工具的使用
一、背景对于运行在后台的docker容器,我们经常需要做的事情是进入到容器中,docker为我们提供了docker exec 、docker attach 命令,并且还提供了nsenter工具,外部工具供我们使用。docker attach存在的问题是:当多个窗口同时attach到同一个容器时,所有的窗口都会同步的显示,假如其中的一个窗口发生阻塞时,其它的窗口也会阻塞,docker attach命令可以说是最不方便的进入后台docker容器的方法。docker exec命令是在docker 1.3之后转载 2021-08-24 09:13:42 · 1716 阅读 · 0 评论 -
解决/var/lib/docker/overlay2占用很大、容器无法启动问题
# 解决办法1. 查看docker文件夹磁盘使用情况 docker -hs /v原创 2021-06-18 02:13:44 · 1911 阅读 · 0 评论 -
docker-harbor安装部署
一、Harbor简介Harbor介绍Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外原创 2020-11-05 23:39:03 · 657 阅读 · 2 评论 -
docker容器批量操作命令
docker中 启动所有的容器命令docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)或者docker ps -a | awk '{ print $1}' | tail -n +2 | xargs docker start docker中 关闭所有的容器命令docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)或者docker ps -a | awk原创 2020-10-27 03:28:03 · 729 阅读 · 0 评论 -
k8s重启报错 :The connection to the server 192.168.102.149:6443 was refused
现象k8s重启报错# kubectl get podsThe connection to the server xxx:6443 was refused - did you specify the right host or port?问题排查根据报错描述,连接kubelet的6443端口被拒绝:查看该端口状态显示端口未启动起来ss -antulp | grep :6443该端口是kubelet的api监听端口,应该是kubelet启动失败,尝试重启,查看kubelet状态,果然启动失原创 2020-10-27 03:23:43 · 19522 阅读 · 1 评论 -
LXC web管理端LXC WEB Panel
安装 LXC WEB Panel相关依赖LXC WEB Panel是用flask框架研发,所以依赖python-flask这个包,可以使用pip去下载,也可以选择yumyum安装# yum install python-flask -y **pip 安装**# yum install python-pip -y # pip install flask安装debootstrap# yum install -y debootstrap //在创建ubuntu容器时,需要..原创 2020-08-24 23:31:24 · 1078 阅读 · 0 评论 -
容器技术LXC
一、简介LXC是Linux containers的缩写,意思就是Linux 容器;Linux容器技术其实就是整合内核的功能,让其支持多个容器运行时资源相互隔离;我们知道内核的功能用户是无法直接操作的,必须得有一用户空间的软件,通过系统调用去操作内核功能;所以lxc就是用来操作Linux内核容器化的工具;这种逻辑有点类似iptables,iptables本身不对用户的报文做任何检查,真正生效的是内核netfilter;二、主要技术点chroot:根切换,一个改变当前运行进程以及其子进程的根目录的操作。原创 2020-08-24 23:10:33 · 776 阅读 · 0 评论 -
三.docker容器的基本操作命令
1.创建容器[root@bogon Desktop]# docker create -it centos:latest49896b8dd3f01d4c7a9121234e174f2e49ffccc22ca35094e12e791f3a8bd043[root@bogon Desktop]# docker ps -aCONTAINER ID IMAGE原创 2016-08-10 01:15:09 · 479 阅读 · 0 评论 -
二.docker镜像基本命令
获取镜像:docker pull cenos查看镜像:[root@bogon ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEcentos原创 2016-08-08 02:14:47 · 382 阅读 · 4 评论 -
一.docker安装与部署
一.CentOS 6安装Docker1.安装EPEL镜像源yum install http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm2.关闭selinux修改配置文件: /etc/selinux/config、SELINUX=disabled8 # SELINUXTYPE原创 2016-08-08 01:01:09 · 427 阅读 · 7 评论 -
Docker 核心技术与实现原理
文章目录Namespaces进程网络libnetwork挂载点chrootCGroupsUnionFS存储驱动AUFS其他存储驱动总结提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段使用的玩具了。作为在生产环境中广泛应用的产品,Docker 有着非常成熟的社区以及大量的使用者,代码库中的内容也变得非常庞大。同样,由于项目的发展、功能的拆分以及各种奇怪的改名 PR,让我们再次理解 Docker 的的整体架构变得更加困转载 2020-08-06 07:07:16 · 196 阅读 · 0 评论 -
使用nginx -g daemon off启动nginx容器的原因
背景知识:Docker 容器启动时,默认会把容器内部第一个进程,也就是pid=1的程序,作为docker容器是否正在运行的依据,如果 docker 容器pid=1的进程挂了,那么docker容器便会直接退出。原因nginx默认是以后台模式启动的,Docker未执行自定义的CMD之前,nginx的pid是1,执行到CMD之后,nginx就在后台运行,bash或sh脚本的pid变成了1。所以一旦执行完自定义CMD,nginx容器也就退出了。为了保持nginx的容器不退出,应该关闭nginx后台运行..原创 2020-07-22 01:26:02 · 23482 阅读 · 1 评论 -
docker可视化工具对比
1、前言 谈及docker,避免不了需要熟练的记住好多命令及其用法,对于熟悉shell、技术开发人员而言,还是可以接受的,熟练之后,命令行毕竟是很方便的,便于操作及脚本化。但对于命令行过敏、非技术人员,进行docker部署、管理是比较头疼的,学习成本是很高的。 而市面上的可视化管理工具也是很多的,各有优缺点,结合最近使用过的几款做一对比,希望能够帮助到大家,以选取一款合适的。 就DockerUI、Shipyard、Rancher、Portainer做一对比。关于他们的详细介绍及安装方法,转载 2020-07-19 02:47:24 · 511 阅读 · 0 评论 -
查看docker容器日志
docker logs-查看docker容器日志通过docker logs命令可以查看容器的日志。**命令格式:$ docker logs [OPTIONS] CONTAINER Options: --details 显示更多的信息 -f, --follow 跟踪实时日志 --since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟) --tail string转载 2020-07-13 02:46:12 · 436 阅读 · 0 评论 -
docker-compose使用教程
1、安装$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose$ sudo chmod +x /usr/local/bin/docker-compose创建软链:$ sudo ln -s /usr/local/bin/docker-compose /usr/bi原创 2020-07-09 08:58:43 · 681 阅读 · 0 评论 -
Docker镜像压缩和优化
背景在构建Docker容器时,应该尽量想办法获得体积更小的镜像,因为传输和部署体积较小的镜像速度更快。但RUN语句总是会创建一个新层,而且在生成镜像之前还需要使用很多中间文件,在这种情况下,该如何获得体积更小的镜像呢?docker image形成的示例示例:DockerfileFROM Ubuntu:14.04ADD run.sh /VOLUME /dataCMD [“./run.sh”]上面的dockerfile的行为:基于Ubuntu:14.04系统将run.sh放在根目录下,设置原创 2020-07-09 08:40:24 · 778 阅读 · 0 评论 -
Docker使用gzip压缩导出/导入镜像
导出镜像docker save <myimage>:<tag> | gzip > <myimage>_<tag>.tar.gz导入镜像gunzip -c <myimage>_<tag>.tar.gz | docker load转载 2020-07-08 23:29:48 · 1762 阅读 · 0 评论 -
如何让docker容器在执行shell命令后不退出运行
docker compose文件version: '3'services: cache-service: image: microsoft/aspnetcore:2.0 depends_on: - dotnet-publish volumes: - share:/app command: bash -c "cd /app && dotnet Cnblogs.Cache.WebApi.dll"执行docker-compose原创 2020-07-03 02:08:28 · 3986 阅读 · 0 评论