摘要:docker默认使用https拉取镜像,无法通过http拉取镜像。创建或修改/etc/docker/daemon.json文件,增加insecure-registries字段。 { "insecure-registries" : ["镜像地址域名或者ip:port"] } 重启docker syst
阅读全文
摘要:wget https://download.docker.com/linux/static/stable/x86_64/docker-25.0.0.tgz tar -zxvf docker-25.0.0.tgz cp docker/* /usr/bin/ rm -rf docker vim /etc
阅读全文
摘要:docker支持根据机器cpu架构,拉镜像时自动选择适配的镜像,避免用户感知。 # abc:v1只是例子 docker manifest create abc:v1 abc:v1-amd64 abc:v1-arm64 docker manifest push abc:v1 docker manife
阅读全文
摘要:指令 作用 FROM 指定基础镜像 FROM --platform=linux/amd64 xxx FROM --platform=linux/arm64 xxx WORKDIR 指定后续指令的工作目录,默认会创建该目录 COPY 拷贝文件到镜像中 RUN 镜像中执行的命令 CMD 容器运行命令
阅读全文
摘要:dockerd代理 docker pull由守护进程dockerd执行,代理配置dockerd中。 mkdir -p /etc/systemd/system/docker.service.d vim /etc/systemd/system/docker.service.d/proxy.conf [S
阅读全文
摘要:问题现象 docker拉取镜像报错Bad Request。 问题分析 cat /etc/systemd/system/docker.service.d/http-proxy.conf 1.1.1.1:80模拟错误的docker代理配置,错误的代理导致镜像拉取失败。 解决问题 注释代理配置。 vim
阅读全文
摘要:# 容器开启特权,设置文件不可删除 touch a chattr +a a 可以stop,但是无法rm。 去掉可读写层overlay2 upperdir中/a文件不可删除属性后,容器可以删除。
阅读全文
摘要:docker pull busybox:1.32 docker run --rm -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -itd busybox:1.32 sh k8s挂载 volumeMounts: - name: timezone
阅读全文
摘要:方法1 使用更小的基础镜像 FROM centos:7 改成 FROM busybox:1.35.0 基础镜像从204MB减少到4.27MB。 方法2 减少镜像层数 RUN mv test test1 RUN chmod +x a.sh 改成 RUN mv test test1 && \ chmod
阅读全文
摘要:方法1 挂载docker.sock和docker二进制 复用宿主机docker。docker run -itd -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker centos:7容器内可以执
阅读全文
摘要:# MySQL 限制0.5个CPU和0.5G内存 docker pull mysql:5.7 docker run -itd --name mysql -p3306 --cpu-period=1000000 --cpu-quota=500000 --memory 512M --rm -e MYSQL
阅读全文
摘要:修改docker默认存储路径 docker默认使用/var/lib/docker作为存储目录。 mkdir /root/docker cat >> /etc/docker/daemon.json << EOF { "data-root": "/root/docker" } EOF systemctl
阅读全文
摘要:docker inspect 容器id | grep -i pid nsenter -t <PID> --net --ipc --uts --pid --mount 操作命令
阅读全文
摘要:挂载命令 把宿主机/home目录挂载到容器的/test目录当中。docker run -v /home:/test ... 挂载操作不破坏隔离性 在rootfs准备好(联合挂载)之后,在执行chroot之前,把Volume指定的宿主机目录挂载到指定的容器目录。执行这个挂载操作时,容器init进程已经
阅读全文
摘要:docker run -d nginx:1.91. 容器内查看网卡索引值docker exec -it 2740f92 cat /sys/class/net/eth0/iflink2. 根据网卡索引值查找系统网卡ip a | grep "7: "
阅读全文
摘要:Docker有4种网络模式(--network=) bridge默认模式,分配network namespace和IP,连接到docker0网桥上。 host使用主机IP,不分配network namespace和IP,和宿主机共用network namespace。 container和已存在的某
阅读全文
摘要:Cgroups的3个组件 cgroup用于分组管理进程,subsystem(cpu和memory等)用于资源控制。 一个cgroup包含一组进程,可以在一个cgroup上增加subsystem的参数配置,把一组进程和一组subsystem的参数关联起来。多个cgroup串成一个树状结构,这样的树是一
阅读全文
摘要:挂载在容器根目录上的文件系统,就是rootfs(根文件系统)。rootfs只是一个操作系统所包含的文件,不包括操作系统内核。在Linux中,操作系统文件和内核是分开存放的,操作系统只有在开机启动时才会加载指定版本的内核。同一台机器上的所有容器,都共享宿主机内核。Docker创建容器主要流程是,配置N
阅读全文
摘要:安装最新的Docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos
阅读全文
摘要:1 目录结构 docker存储目录是/var/lib/docker。 2 image目录 image/overlay2/distribution: 从远端拉到本地的镜像相关元数据image/overlay2/imagedb: 镜像数据库(下面content/sha256存放了所有以镜像sha256值
阅读全文