• [技术干货] Docker中容器(Container)和镜像(Image)的区别
    在学习使用docker过程中会遇到镜像和容器,两者之间的区别是什么?一.什么是image镜像可以看成是由多个镜像层叠加起来的一个文件系统(通过UnionFS与AUFS文件联合系统实现),镜像层也可以简单理解为一个基本的镜像,而每个镜像层之间通过指针的形式进行叠加。镜像是一堆只读层的统一视角,除了最底层没有指向外,每一层都指向它的父层。统一文件系统( Union File System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在。在用户的角度看来,只存在一个文件系统。镜像每一层都是不可写的,都是只读层。二.什么是容器?容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。要点:容器 = 镜像 + 读写层,并且容器的定义并没有提及是否要运行容器。总结:Image与Container之间的区别和联系?      镜像由一层层只读层堆在一起,容器为镜像只读层+读写层,运行态容器为由一个可读写的文件系统「静态容器」+ 隔离的进程空间和其中的进程构成。      镜像的概念更多偏向于一个环境包,这个环境包可以移动到任意的Docker平台中去运行;而容器就是你运行环境包的实例。你可以针对这个环境包运行N个实例。换句话说container是images的一种具体表现形式。你也可以认为镜像与你装载操作系统iso镜像是一个概念,容器则可理解为镜像启动的操作系统。一个镜像可以启动任意多个容器,即可以装载多个操作系统。
  • [问题求助] ubuntu的更新 update的时候报文件size不对
    如题,从ubuntu官源切到huawe镜像的时候 报了一下error。看时间create是在24号,今天是26号 所以至少同步了两次 应该没有同步未完成的问题吧?获取:16 http://repo.huaweicloud.com/ubuntu focal-security/main amd64 c-n-f Metadata [7,952 B]错误:16 http://repo.huaweicloud.com/ubuntu focal-security/main amd64 c-n-f Metadata  文件尺寸不符(7960 != 7952)。您使用的镜像正在同步中? [IP: 119.188.221.242 80]  Hashes of expected file:   - Filesize:7952 [weak]   - SHA256:06c76c037dcb389b96445ebeef3fba57484f7a1b1f64ed4a0324cca0cb753a9e   - SHA1:837ebed52fe1ca04c28973654a56e36b0cde4049 [weak]   - MD5Sum:cad5b7b7d8b8f73321f1b4a6b2aea323 [weak]  Release file created at: Thu, 24 Jun 2021 23:53:01 +0000获取:37 http://repo.huaweicloud.com/ubuntu focal-security/universe amd64 c-n-f Metadata [11.6 kB]错误:37 http://repo.huaweicloud.com/ubuntu focal-security/universe amd64 c-n-f Metadata  已下载 52.1 kB,耗时 1秒 (43.0 kB/s)  正在读取软件包列表... 完成E: 无法下载 http://repo.huaweicloud.com/ubuntu/dists/focal-security/main/cnf/Commands-amd64.xz  文件尺寸不符(7960 != 7952)。您使用的镜像正在同步中? [IP: 119.188.221.242 80]   Hashes of expected file:    - Filesize:7952 [weak]    - SHA256:06c76c037dcb389b96445ebeef3fba57484f7a1b1f64ed4a0324cca0cb753a9e    - SHA1:837ebed52fe1ca04c28973654a56e36b0cde4049 [weak]    - MD5Sum:cad5b7b7d8b8f73321f1b4a6b2aea323 [weak]   Release file created at: Thu, 24 Jun 2021 23:53:01 +0000E: 无法下载 http://repo.huaweicloud.com/ubuntu/dists/focal-security/universe/cnf/Commands-amd64.xz  E: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。
  • [设备专区] 【AR502H产品】creat-ova工具进行镜像转换如何指定tag版本
    【AR502H产品】
  • [技术干货] dockerfile简介
    Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。Dockerfile指令:FROM:构建新镜像是基于哪个镜像LABEL:标签RUN:构建镜像时运行的Shell命令copy:拷贝文件或目录到镜像中ADD:解压压缩包并拷贝ENV:设置环境变量USER:为RUN、CMD和ENTRYPOINT执行命令指定运行用户EXPOSE:声明容器运行的服务端口WORKDIR:为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录CMD:运行容器时默认执行,如果有多个CMD指令,最后一个生效ENTRYPOINT:如果与CMD一起用,CMD将作为ENTRYPOINT的默认参数,如果有多个ENTRYPOINT指令,最后一个生效镜像分类:1、基础镜像,例如centos、ubuntu、alpine2、环境镜像,例如java、php、go3、项目镜像,将项目项目与环境镜像打包一起的镜像
  • [技术干货] Docker镜像存储核心技术:写时复制(COW)
    docker镜像是只读的,类似共享形式让多个容器使用,如果要在容器里修改文件,即镜像里的文件,那该怎么办呢?答:引入写时复制(copy-on-write) ,需要修改文件操作时,会先从镜像里把要写的文件复制到自己的文件系统中进行修改。root@ecs-385f:~# docker psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES33d6458086be        nginx               "/docker-entrypoint.…"   33 minutes ago      Up 33 minutes       80/tcp              competent_albattani502e44434e1e        nginx               "/docker-entrypoint.…"   33 minutes ago      Up 33 minutes       80/tcp              dreamy_bhaskara8b08a7730f5d        nginx               "/docker-entrypoint.…"   34 minutes ago      Up 34 minutes       80/tcp              trusting_mendeleev02fb52595488        nginx               "/docker-entrypoint.…"   34 minutes ago      Up 34 minutes       80/tcp              silly_turing467de1cc12a4        nginx               "/docker-entrypoint.…"   34 minutes ago      Up 34 minutes       80/tcp              eloquent_elion0cd03030a99f        nginx               "/docker-entrypoint.…"   34 minutes ago      Up 34 minutes       80/tcp              nostalgic_heisenbergroot@ecs-385f:~# docker inspect 33d6458086be[    {        "Id": "33d6458086be3c003bf8c2a530749b98752b20a3de8b09ca5faf1281a0854527",        "Created": "2021-06-21T07:37:24.785048647Z",        "Path": "/docker-entrypoint.sh",        "Args": [            "nginx",            "-g",            "daemon off;"        ],        "State": {            "Status": "running",            "Running": true,            "Paused": false,            "Restarting": false,            "OOMKilled": false,            "Dead": false,            "Pid": 3111,            "ExitCode": 0,            "Error": "",            "StartedAt": "2021-06-21T07:37:25.244262408Z",            "FinishedAt": "0001-01-01T00:00:00Z"        },        "Image": "sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdee",        "ResolvConfPath": "/var/lib/docker/containers/33d6458086be3c003bf8c2a530749b98752b20a3de8b09ca5faf1281a0854527/resolv.conf",        "HostnamePath": "/var/lib/docker/containers/33d6458086be3c003bf8c2a530749b98752b20a3de8b09ca5faf1281a0854527/hostname",        "HostsPath": "/var/lib/docker/containers/33d6458086be3c003bf8c2a530749b98752b20a3de8b09ca5faf1281a0854527/hosts",        "LogPath": "/var/lib/docker/containers/33d6458086be3c003bf8c2a530749b98752b20a3de8b09ca5faf1281a0854527/33d6458086be3c003bf8c2a530749b98752b20a3de8b09ca5faf1281a0854527-json.log",        "Name": "/competent_albattani",        "RestartCount": 0,        "Driver": "overlay2",        "Platform": "linux",        "MountLabel": "",        "ProcessLabel": "",        "AppArmorProfile": "docker-default",        "ExecIDs": null,        "HostConfig": {            "Binds": null,            "ContainerIDFile": "",            "LogConfig": {                "Type": "json-file",                "Config": {}            },            "NetworkMode": "default",            "PortBindings": {},            "RestartPolicy": {                "Name": "no",                "MaximumRetryCount": 0            },            "AutoRemove": false,            "VolumeDriver": "",            "VolumesFrom": null,            "CapAdd": null,            "CapDrop": null,            "Dns": [],            "DnsOptions": [],            "DnsSearch": [],            "ExtraHosts": null,            "GroupAdd": null,            "IpcMode": "shareable",            "Cgroup": "",            "Links": null,            "OomScoreAdj": 0,            "PidMode": "",            "Privileged": false,            "PublishAllPorts": false,            "ReadonlyRootfs": false,            "SecurityOpt": null,            "UTSMode": "",            "UsernsMode": "",            "ShmSize": 67108864,            "Runtime": "runc",            "ConsoleSize": [                0,                0            ],            "Isolation": "",            "CpuShares": 0,            "Memory": 0,            "NanoCpus": 0,            "CgroupParent": "",            "BlkioWeight": 0,            "BlkioWeightDevice": [],            "BlkioDeviceReadBps": null,            "BlkioDeviceWriteBps": null,            "BlkioDeviceReadIOps": null,            "BlkioDeviceWriteIOps": null,            "CpuPeriod": 0,            "CpuQuota": 0,            "CpuRealtimePeriod": 0,            "CpuRealtimeRuntime": 0,            "CpusetCpus": "",            "CpusetMems": "",            "Devices": [],            "DeviceCgroupRules": null,            "DiskQuota": 0,            "KernelMemory": 0,            "MemoryReservation": 0,            "MemorySwap": 0,            "MemorySwappiness": null,            "OomKillDisable": false,            "PidsLimit": 0,            "Ulimits": null,            "CpuCount": 0,            "CpuPercent": 0,            "IOMaximumIOps": 0,            "IOMaximumBandwidth": 0,            "MaskedPaths": [                "/proc/acpi",                "/proc/kcore",                "/proc/keys",                "/proc/latency_stats",                "/proc/timer_list",                "/proc/timer_stats",                "/proc/sched_debug",                "/proc/scsi",                "/sys/firmware"            ],            "ReadonlyPaths": [                "/proc/asound",                "/proc/bus",                "/proc/fs",                "/proc/irq",                "/proc/sys",                "/proc/sysrq-trigger"            ]        },        "GraphDriver": {            "Data": {                "LowerDir": "/var/lib/docker/overlay2/f90648b1fa3f9d0349ba3dc359d7a8fa21e431ba47032375a90b0aeb2dd7a540-init/diff:/var/lib/docker/overlay2/6a9b4dca2a4e94c7545bba7cc6b18576806b01a62075c8e89a53b4c266218ad8/diff:/var/lib/docker/overlay2/470d4ab71cb0e44513b63e7c62c67ed5361df359db590569fb1a67bb9450a316/diff:/var/lib/docker/overlay2/24fb23032d9b45d78c8ce8c194c493ec55d765d5a70046f5f6fd6b6cd6e2142a/diff:/var/lib/docker/overlay2/22cd5de58f6a125afa15e5fb9eb17081cad4a7dc22703903fcfced139f1a96b1/diff:/var/lib/docker/overlay2/cf34d04ecc4192bde2226b3d4d5413c5c8a8bae87e7c926cddcdcd3ec775aacf/diff:/var/lib/docker/overlay2/56ca3749c2a0655a851d4ab7c0ccb2dc6f7ee00ec9d4b71df3d64c5c47b6006f/diff",                "MergedDir": "/var/lib/docker/overlay2/f90648b1fa3f9d0349ba3dc359d7a8fa21e431ba47032375a90b0aeb2dd7a540/merged",                "UpperDir": "/var/lib/docker/overlay2/f90648b1fa3f9d0349ba3dc359d7a8fa21e431ba47032375a90b0aeb2dd7a540/diff",                "WorkDir": "/var/lib/docker/overlay2/f90648b1fa3f9d0349ba3dc359d7a8fa21e431ba47032375a90b0aeb2dd7a540/work"            },            "Name": "overlay2"        },        "Mounts": [],        "Config": {            "Hostname": "33d6458086be",            "Domainname": "",            "User": "",            "AttachStdin": false,            "AttachStdout": false,            "AttachStderr": false,            "ExposedPorts": {                "80/tcp": {}            },            "Tty": false,            "OpenStdin": false,            "StdinOnce": false,            "Env": [                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",                "NGINX_VERSION=1.21.0",                "NJS_VERSION=0.5.3",                "PKG_RELEASE=1~buster"            ],            "Cmd": [                "nginx",                "-g",                "daemon off;"            ],            "Image": "nginx",            "Volumes": null,            "WorkingDir": "",            "Entrypoint": [                "/docker-entrypoint.sh"            ],            "OnBuild": null,            "Labels": {                "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"            },            "StopSignal": "SIGQUIT"        },        "NetworkSettings": {            "Bridge": "",            "SandboxID": "067073a5ac808907bf6c2896b2c9c50e3d778afc804ae608509cfd326e48bc71",            "HairpinMode": false,            "LinkLocalIPv6Address": "",            "LinkLocalIPv6PrefixLen": 0,            "Ports": {                "80/tcp": null            },            "SandboxKey": "/var/run/docker/netns/067073a5ac80",            "SecondaryIPAddresses": null,            "SecondaryIPv6Addresses": null,            "EndpointID": "3247a30ac8e65496927dcf28f152485864ac2493cb92a0eeb897b6868ae8ae83",            "Gateway": "172.17.0.1",            "GlobalIPv6Address": "",            "GlobalIPv6PrefixLen": 0,            "IPAddress": "172.17.0.7",            "IPPrefixLen": 16,            "IPv6Gateway": "",            "MacAddress": "02:42:ac:11:00:07",            "Networks": {                "bridge": {                    "IPAMConfig": null,                    "Links": null,                    "Aliases": null,                    "NetworkID": "5b4b7564f6971f04e2c0bcb3f04bc94b99fcdfec3390573fe3a806f901ef8ffa",                    "EndpointID": "3247a30ac8e65496927dcf28f152485864ac2493cb92a0eeb897b6868ae8ae83",                    "Gateway": "172.17.0.1",                    "IPAddress": "172.17.0.7",                    "IPPrefixLen": 16,                    "IPv6Gateway": "",                    "GlobalIPv6Address": "",                    "GlobalIPv6PrefixLen": 0,                    "MacAddress": "02:42:ac:11:00:07",                    "DriverOpts": null                }            }        }    }]root@ecs-385f:~# 最上面是基础镜像层,拼接的容器层,通过这种方式存储不同层的内容;Mergeddir:统一视图层;UpperDir:容器层。root@ecs-385f:~# ls /var/lib/docker/overlay2/f90648b1fa3f9d0349ba3dc359d7a8fa21e431ba47032375a90b0aeb2dd7a540-init/diffdev  etcroot@ecs-385f:~#挂载到宿主机的文件上。root@ecs-385f:~# ls /var/lib/docker/overlay2/f90648b1fa3f9d0349ba3dc359d7a8fa21e431ba47032375a90b0aeb2dd7a540-init/diff/etchostname  hosts  mtab  resolv.confroot@ecs-385f:~# 容器新建会挂载宿主机的三个文件:hostshostnameresolv.conf容器保存数据的三种方式:volumes: Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes) .保存数据的最佳方式。bind mounts:将宿主机上的任意位置的文件或者目录挂载到容器中.tmpfs:挂载存储在主机系统的内存中,而不会写入主机的文件系统,如果不希望将数据持久存储在任何位置,可以使用tmpfs,同时避免写入容器可写层提高性能。
  • [技术干货] docker镜像存储核心技术:联合文件存储系统(UnionFS)
    Docker镜像是什么?一个分层存储的文件,不是一个单一的文件一个软件的环境一个镜像可以创建N个容器一种标准化的交付一个不包含Linux内核而又精简的Linux操作系统镜像怎么高效存储?难道像虚拟机那样一个容器对应一个独立的镜像文件?这样对于密集型容器,磁盘占用率太大!答:引入联合文件系统,将镜像多层文件联合挂载到容器文件系统root@ecs-385f:~# df -hFilesystem      Size  Used Avail Use% Mounted onudev            966M     0  966M   0% /devtmpfs           200M  8.3M  191M   5% /run/dev/vda1        93G  6.9G   82G   8% /root@ecs-385f:~# docker run -d nginx0cd03030a99fea5e3a8827279b851274a4a9986a9f3038a9a9a870ed31590a33root@ecs-385f:~# docker run -d nginx467de1cc12a4cbed8ce8633d48f7afe9368ce1be4c32b355a9e7e640d6e6f8c4root@ecs-385f:~# docker run -d nginx02fb525954885230e015be11d2e6a0d116f636258eaaf2f0c48548560a068d8croot@ecs-385f:~# docker run -d nginx8b08a7730f5d61a4a15db80dc63132bf9d6081b4aed5655225a1d473b5ead8d4root@ecs-385f:~# docker run -d nginx502e44434e1e4ecf596f9d386dcb7437e9b91178aea1281aa027f42d31b3d7a3root@ecs-385f:~# docker run -d nginx33d6458086be3c003bf8c2a530749b98752b20a3de8b09ca5faf1281a0854527root@ecs-385f:~# df -hFilesystem      Size  Used Avail Use% Mounted onudev            966M     0  966M   0% /devtmpfs           200M  8.7M  191M   5% /run/dev/vda1        93G  6.9G   82G   8% /可以看出,虽然拉起了6个nginx容器,主机的存储空间使用并没有太多消耗。当启动一个容器时,docker只会加载只读镜像,并在其上添加一个读写层即容器层。
  • [问题求助] Mac/windows 安装 HarmonyOS 镜像都打不开终端 小熊派开发板编译环境
  • [问题求助] 镜像源上的软件包有问题,不完整无法解压
    软件包有问题,从容量来看,是没有上传完整:
  • [技术干货] 交付流程之制作Docker镜像(一)
    准备工作:熟悉项目: 1、项目代码构成:熟悉开发语言,部署环境,软硬件限制;原代码数据结构,功能组成,流程图等。 2、依赖的服务:部署软件所依赖的库文件和环境配置 3、提交服务的端口:查询端口是否可用 4、配置文件:清楚配置文件的存放路径,文件内容 5、程序在工作中涉及持久的文件:文件存放的路径,冗余方式,备份方式等。
  • [技术干货] deployment部署k8s应用
    工作负载控制器(Workload Controllers)是K8s的一个抽象概念,用于更高级层次对象,部署和管理Pod.常用工作负载控制器:Deployment:无状态应用部署StatefulSet :有状态应用部署DaemonSet :确保所有Node运行同一个PodJob:一次性任务Cronjob: 定时任务控制器的作用管理Pod对象使用标签与Pod关联控制器实现了Pod的运维,例如滚动更新、伸缩、副本管理、维护Pod状态等。练习一个简单的web应用,使用deployment部署k8s应用。root@ecs-beijing1:~# vi deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata:  name: web  namespace: defaultspec:  replicas: 1  selector:    matchLabels:      app: nginx  template:    metadata:      labels:        app: nginx    spec:      containers:      - name: web        image: nginx:1.18root@ecs-beijing1:~# kubectl apply -f deployment.yamldeployment.apps/web created接下来,诡异的事情发生了:pod一直处于ContainerCreating状态,10分钟后describe pod 提示Error: ErrImagePull 尝试降低nginx版本、降低副本数为1,都没有效果。可是明明yaml文件kind选择pod,image拉取同样的镜像是成功的,为啥deployment就不行了呢?排查了所有可能的状态后,采纳一个建议:docker pull 同样的镜像试试:结果发现,奇慢无比!再次appply一下,耐心等待一会儿,可以了。root@ecs-beijing1:~# kubectl get pod -o wide         NAME                   READY   STATUS    RESTARTS   AGE   IP            NODE           NOMINATED NODE   READINESS GATESinit-demo              1/1     Running   0          21m   10.244.0.37   ecs-beijing1   <none>           <none>web-5c6845785b-llwfx   1/1     Running   0          98s   10.244.0.38   ecs-beijing1   <none>           <none>还是1个副本,再试试3个?绝不~先到这吧。
  • [ARM原生] 求一份编译好的sdk和镜像测试
    求一份sdk和支持32的镜像包
  • [大数据] 【问题求助】使用华为云镜像站Hue 3.9.0的二进制包,编译失败,启动失败
    下载了华为云镜像站的hue cdh5.12.1 二进制包后,无法启动hue。https://mirrors.huaweicloud.com/kunpeng/dist/Cloudera/cdh5/cdh/5/hue-cdh5.12.1-bin.tar.gz编译make apps启动时报错 是没有python2.7环境
  • [问题求助] 镜像配好无法用yum安装gcc
    内部员工,黄区机器,配置好https://mirrors.huaweicloud.com这个镜像之后,yum没有找到gcc的包,内部使用应该用哪个镜像,或者配置的时候有什么讲究?
  • [互动交流] DevCloud凤凰商城,构建phoenix-sample-ci项目时,镜像自动提交SWR上,镜像版本和更新时间问题
    DevCloud 在构建凤凰商城项目时(鲲鹏实验时候发现的问题),构建phoenix-sample-ci项目时,镜像自动提交SWR上;1、问题:正常是不是每次构建SWR上镜像版本会自动+1?但是发现redis和postgres版本始终为1,其他会版本+1;2、问题:镜像更新时间问题, 我2021/5/17上午11点更新的,然后发现SWR上镜像更新时间为 2021/05/17 19:34:1以上不知道怎么解释
  • [问题求助] 【HCS产品】【镜像服务功能】通过ISO制作镜像安装UVP VMTools的系统要求
    【功能模块】镜像服务【操作步骤&问题现象】在文档《华为云Stack 8.0.3 用户指南 (Region Type I) 03》中关于“镜像服务(IMS)”中的“安装 Linux 虚拟机(支撑 X86 架构)”的要求:“所有操作系统不建议最简安装,否则,后续UVP VMTools会安装失败。”以上要求感觉有些宽泛,不好把握,一般以下安装选项推荐哪一个?【截图信息】【日志信息】(可选,上传日志内容或者附件)
总条数:826 到第 页
上滑加载中