标签 - docker

docker    2023-11-17 16:52:09    45    0    0

脚本正文

  1. #!/bin/bash
  2. yum remove docker docker-common docker-selinux docker-engine -y
  3. yum install -y yum-utils device-mapper-persistent-data lvm2
  4. #yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
  5. #yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  6. #阿里源
  7. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  8. #指定版本安装
  9. #yum -y install docker-ce-17.09.0.ce && mkdir -p /data/docker
  10. #安装最新版本
  11. yum -y install $1 && mkdir -p /data/docker
  12. #useradd opsadmin
  13. #usermod -G docker opsadmin
  14. sed -i "s#ExecStart=/usr/bin/dockerd#ExecStart=/usr/bin/dockerd --data-root /data/docker -H unix://#g" /usr/lib/systemd/system/docker.service
  15. mkdir -p /etc/docker
  16. tee /etc/docker/daemon.json <<-'EOF'
  17. {
  18. "registry-mirrors": [
  19. "https://docker.m.daocloud.io",
  20. "https://dockerproxy.com",
  21. "https://docker.mirrors.ustc.edu.cn",
docker    2023-06-20 18:02:23    248    0    0

说明

系统:centos7.x
docker版本:19.03.13

title

  1. + go version
  2. runtime/cgo: pthread_create failed: Operation not permitted
  3. SIGABRT: abort
  4. PC=0x7f664ca35ccc m=0 sigcode=18446744073709551610
  5. goroutine 0 [idle]:
  6. runtime: g 0: unknown pc 0x7f664ca35ccc
  7. stack: frame={sp:0x7fff3ee82550, fp:0x0} stack=[0x7fff3e6839d0,0x7fff3ee829e0)
  8. 0x00007fff3ee82450: 0x0000000000000000 0x0000000000000000
  9. 0x00007fff3ee82460: 0x0000000000000000 0x0000000000000000
  10. 0x00007fff3ee82470: 0x0000000000000000 0x0000000000000000
  11. 0x00007fff3ee82480: 0x0000000000000000 0x0000000000000000
  12. 0x00007fff3ee82490: 0x0000000000000000 0x0000000000000000
  13. 0x00007fff3ee824a0: 0x0000000000000000 0x0000000000000000
  14. 0x00007fff3ee824b0: 0x0000000000000000 0x0000000000000000
  15. 0x00007fff3ee824c0: 0x0000000000000000 0x00000000000
docker    2023-06-15 15:02:31    16    0    0

anapsix_alpine-java_jdk8

  1. # AlpineLinux with a glibc-2.28-r0 and Oracle Java 8
  2. FROM alpine:3.8
  3. MAINTAINER Anastas Dancha <anapsix@random.io>
  4. # thanks to Vladimir Krivosheev <develar@gmail.com> aka @develar for smaller image
  5. # and Victor Palma <palma.victor@gmail.com> aka @devx for pointing it out
  6. # Java Version and other ENV
  7. ENV JAVA_VERSION_MAJOR=8 \
  8. JAVA_VERSION_MINOR=192 \
  9. JAVA_VERSION_BUILD=12 \
  10. JAVA_PACKAGE=jdk \
  11. HOTSWAP_AGENT_VERSION=1.2.0 \
  12. JAVA_JCE=unlimited \
  13. JAVA_HOME=/opt/jdk \
  14. PATH=${PATH}:/opt/jdk/bin \
  15. GLIBC_REPO=https://github.com/sgerrand/alpine-pkg-glibc \
  16. GLIBC_VERSION=2.28-r0 \
  17. LANG=C.UTF-8
  18. # do all in one step
  19. RUN set -ex && \
  20. [[ ${JAVA_VERSION_MAJOR} != 7 ]] || ( echo >&2 'Oracle no longer publishes JAVA7 packages' && e
docker    2023-06-15 15:01:14    10    0    0

获取docker容器root权限

  1. docker exec -it -u root ContainerID bash

删除30天外的所有镜像

  1. docker image prune -a --filter "until=720h"

删除以reg.xxx.com/test开头的所有镜像

  1. docker images prune -a --filter=reference='reg.xxx.com/test/*:*'

导入导出镜像文件

  1. docker save -o node:18-bullseye-slim.tar node:18-bullseye-slim
  2. docker load -i node:18-bullseye-slim.tar
docker    2023-06-15 15:01:09    30    0    0

什么是Docker

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 内核的 cgroupnamespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 版本开始,则进一步演进为使用 runCcontainerd
title

runc 是一个 Linux 命令行工具,用于根据 OCI容器运行时规范 创建和运行容器。


containerd

docker    2023-06-15 15:01:07    3304    0    0

说明

  • 系统:centos7.x
  • docker版本:19.03.4
  1. $ docker pull kong/kong-gateway:3.3.0.0
  2. mediaType in manifest should be 'application/vnd.docker.distribution.manifest.v2+json' not 'application/vnd.oci.image.manifest.v1+json'

yum查看docker可用版本怎么操作?

在终端输入命令:

  1. 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,命令如下:

  1. # 首先通过rpm -qa| docker 查看已经安装的docker版本,然后卸载掉老的,再安装新的,再启动服务,测试即可
  2. yum -y remove docker-ce-19.03.4-3.el7.x86_64
  3. yum -y remove docker-ce-cli-19.03.4-3.el7.x86_64
  4. yum -y install d