#!/bin/bash
yum remove docker docker-common docker-selinux docker-engine -y
yum install -y yum-utils device-mapper-persistent-data lvm2
#yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#阿里源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#指定版本安装
#yum -y install docker-ce-17.09.0.ce && mkdir -p /data/docker
#安装最新版本
yum -y install $1 && mkdir -p /data/docker
#useradd opsadmin
#usermod -G docker opsadmin
sed -i "s#ExecStart=/usr/bin/dockerd#ExecStart=/usr/bin/dockerd --data-root /data/docker -H unix://#g" /usr/lib/systemd/system/docker.service
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
系统:centos7.x
docker版本:19.03.13
+ go version
runtime/cgo: pthread_create failed: Operation not permitted
SIGABRT: abort
PC=0x7f664ca35ccc m=0 sigcode=18446744073709551610
goroutine 0 [idle]:
runtime: g 0: unknown pc 0x7f664ca35ccc
stack: frame={sp:0x7fff3ee82550, fp:0x0} stack=[0x7fff3e6839d0,0x7fff3ee829e0)
0x00007fff3ee82450: 0x0000000000000000 0x0000000000000000
0x00007fff3ee82460: 0x0000000000000000 0x0000000000000000
0x00007fff3ee82470: 0x0000000000000000 0x0000000000000000
0x00007fff3ee82480: 0x0000000000000000 0x0000000000000000
0x00007fff3ee82490: 0x0000000000000000 0x0000000000000000
0x00007fff3ee824a0: 0x0000000000000000 0x0000000000000000
0x00007fff3ee824b0: 0x0000000000000000 0x0000000000000000
0x00007fff3ee824c0: 0x0000000000000000 0x00000000000
# AlpineLinux with a glibc-2.28-r0 and Oracle Java 8
FROM alpine:3.8
MAINTAINER Anastas Dancha <anapsix@random.io>
# thanks to Vladimir Krivosheev <develar@gmail.com> aka @develar for smaller image
# and Victor Palma <palma.victor@gmail.com> aka @devx for pointing it out
# Java Version and other ENV
ENV JAVA_VERSION_MAJOR=8 \
JAVA_VERSION_MINOR=192 \
JAVA_VERSION_BUILD=12 \
JAVA_PACKAGE=jdk \
HOTSWAP_AGENT_VERSION=1.2.0 \
JAVA_JCE=unlimited \
JAVA_HOME=/opt/jdk \
PATH=${PATH}:/opt/jdk/bin \
GLIBC_REPO=https://github.com/sgerrand/alpine-pkg-glibc \
GLIBC_VERSION=2.28-r0 \
LANG=C.UTF-8
# do all in one step
RUN set -ex && \
[[ ${JAVA_VERSION_MAJOR} != 7 ]] || ( echo >&2 'Oracle no longer publishes JAVA7 packages' && e
docker exec -it -u root ContainerID bash
docker image prune -a --filter "until=720h"
reg.xxx.com/test
开头的所有镜像
docker images prune -a --filter=reference='reg.xxx.com/test/*:*'
docker save -o node:18-bullseye-slim.tar node:18-bullseye-slim
docker load -i node:18-bullseye-slim.tar
Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动 开放容器联盟(OCI)。
Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目 已经超过 5 万 7 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,dotCloud 公司决定改名为 Docker。
Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 版本开始,则进一步演进为使用 runC 和 containerd。
runc 是一个 Linux 命令行工具,用于根据 OCI容器运行时规范 创建和运行容器。
containerd
$ docker pull kong/kong-gateway:3.3.0.0
mediaType in manifest should be 'application/vnd.docker.distribution.manifest.v2+json' not 'application/vnd.oci.image.manifest.v1+json'
在终端输入命令:
yum list docker-ce --showduplicates | sort -r
这是因为Docker和OCI在容器镜像格式上有所不同。Docker使用的是manifest v2格式,而OCI使用的是manifest v1格式。虽然两种格式都可以使用JSON表示,但在mediaType上有所不同。因此,在使用Docker Registry时,必须使用'application/vnd.docker.distribution.manifest.v2+json'作为mediaType。
Docker Registry要求所有manifest文件都符合Docker分配的MIME类型。如果您使用不同的MIME类型,可能会导致不兼容或意外的行为。因此,建议使用'application/vnd.docker.distribution.manifest.v2+json'来确保最佳兼容性和可靠性。
经测试升级docker版本可以解决此问题,本次是小版本升级从19.03.4
升级到19.03.13
,命令如下:
# 首先通过rpm -qa| docker 查看已经安装的docker版本,然后卸载掉老的,再安装新的,再启动服务,测试即可
yum -y remove docker-ce-19.03.4-3.el7.x86_64
yum -y remove docker-ce-cli-19.03.4-3.el7.x86_64
yum -y install d