2026年docker最新版本是多少(docker升级版本)

docker最新版本是多少(docker升级版本)安装 Docker ubuntu 第一步 检查是否支持 Docker uname a 检查内核版本 必须高于 3 10 ls l sys class misc device mapper 检查存储驱动 第二步 安装 docker wget qO https get docker com sh Centos7 sudo yum remove docker docker client docker client latest docker common



安装Docker


ubuntu

第一步、检查是否支持Docker

$ uname -a

#检查内核版本,必须高于3.10

$ ls -l /sys/class/misc/device-mapper

#检查存储驱动

第二步、安装docker

$ wget -qO- https://get.docker.com/ | sh

Centos7

sudo yum remove docker

docker-client

docker-client-latest

docker-common

docker-latest

docker-latest-logrotate

docker-logrotate

docker-engine

sudo yum install -y yum-utils

device-mapper-persistent-data

lvm2

sudo yum-config-manager

–add-repo

https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install -y docker-ce docker-ce-cli containerd.io

配置国内的镜像源

mkdir -p /etc/docker/

echo ‘{“registry-mirrors”:[“http://hub-mirror.c.163.com”,“https://registry.docker-cn.com”]}’ > /etc/docker/daemon.json

systemctl daemon-reload && systemctl restart docker

容器的基本操作


普通容器

启动容器

$ docker run [<用户名>/]<镜像名>[:tag] [命令]

启动交会容器

$ docker run [–name=<名称>] -i -t <镜像全名> /bin/bash

查看容器

$ docker ps [-a][-l]

查看指定ID的容器信息

$ docker inspect

启动/停止容器

$ docker [-i] start/stop <容器>

删除容器

$ docker rm <容器>

守护式容器

特点

  • 可以长期运行
  • 没有交互会话
  • 非常适合运行应用服务

命令

方法一

$ docker run -i -t <镜像> /bin/bash

$ docker attach <正在运行容器>

方法二

$ docker run -d <镜像> <命令>

查看容器日志

$ docker logs [-f][-t][–tail=n] 容器名

查看运行中的容器的进程

$ docker top <容器>

在运行的容器中启动新的进程

$ docker exec [-d][-i][-t] <容器名> [命令]

停止容器

$ docker kill/stop <容器名>

设置端口映射

$ docker run [-P][-p | :] …

$ docker run -P -i -t ubuntu /bin/bash # 映射所有的端口

$ docker run -p 80 -i -t ubuntu /bin/bash # 映射80端口

$ docker run -p 8080:80 -i -t ubuntu /bin/bash # 将内部的80映射为8080

$ docker run -p 127.0.0.1:8080:80 -i -t ubuntu /bin/bash # 将内部的80端口映射为127.0.0.1:8080

管理镜像


概念

  • TAG:标签
  • 默认:latest
  • 这里多少为版本
  • eg:docker pull node:12.1.1 下载nodejs12.1.1版本

基本操作

显示所有的镜像

$ docker images [-q][-a] [仓库]

查看镜像的详细

$ docker inspace <镜像名>

删除镜像

$ docker rmi [-f] <镜像名>

查找镜像

方法1:镜像dockerhub上查找

方法2:

$ docker search [–automated][-no-trunc][-s ] <镜像名>

下载镜像

$ docker pull [-a] <镜像名>

标记镜像到某个仓库

$ docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

上传镜像到DockerHub

$ docker images #查看本地镜像

$ docker tag <镜像名> <用户名/镜像名> #将镜像转让我的账号下

$ docker push <用户名/镜像名:Tag> #上传镜像

打包镜像


打包镜像有两种方法,推荐使用Dockerfie方法

使用commit打包

将部署好的容器进行打包。

$ docker commit [-a][-m][-p] <容器> <用户名/镜像名:版本>

使用Dockerfile文件打包

第一步:创建Dockerfile文件

#Dockerfile

FORM <基础镜像:Tag>

MAINTAINER <用户名> “联系方式” #新版本推荐使用 LABEL maintainer=value

RUN

EXPOSE <端口号>

说明:

这个指令实际上并不发布端口。它作为构建映像的人和运行容器的人之间的一种文档类型,而这些港口将被发布。若要在运行容器时实际发布端口,请使用旗上若要发布和映射一个或多个端口,或标志以发布所有公开的端口,并将它们映射到高阶端口。

第二步:执行docker build命令

$ docker build [-t <镜像名>][–no-cache] <上下文路径>

注意不要将  作为<上下文路径>,因为他会把硬盘上所有的数据发给docker守护进程.

.dockerignore

创建文件,通过在该文件里添加匹配目录,可以在执行命令时不上传匹配的目录。

#.dockerignore

/temp #匹配根目录下的子目录内所有的以temp开头的文件和文件夹

//temp* #匹配根目录下的子目录的子目录内所有的以temp开头的文件和文件夹

*/temp #匹配所有目录内的以temp开头的文件和文件夹

!my* #在排除文件及文件夹中允许上传my开头的文件及文件夹

Docker远程访问


Docker的配置文件在Centos7 

Docker守护进程Linux上配置文件的默认位置是或者通过参数可用于指定非默认位置。

Docker守护进程启动选项

  • -H unix:///var/run/docker.sock
  • -H tcp://host:port
  • -H fd://(默认)

配置开始

第一步:配置远程的Docker

vi /lib/systemd/system/docker.service

修改[Service]->ExecStart

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H 0.0.0.0:2375

重启Docker

systemctl daemon-reload && systemctl restart docker

第二步:配置本地的系统环境变量

set DOCKER_HOST=tcp://远程ip

export DOCKER_HOST=tcp://远程ip

测试

docker info

提示:

其实配置远程还有一种方法就是配置docker守护进程的配置文件通过配置该文件下的内的值也可以实现,需要注意的是这两种方法只需要使用其中一种即可。

ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock

{

“hosts”:[

 
       
 
       

]

}

Dockerfile指令


关键知识点

  • 上下文路径:
 
        
  • RUN的执行过程
 
        
 
        
 
        

FORM

这个指令初始化新构建阶段,并设置基础镜像以后的指令。因此必须有指令。Image可以是任何有效的Image它特别容易从公共储存库下载。

FROM [–platform=<平台>] [:] [AS ]

ARG

ARG是在当前文件中设置变量,通过ARG定义变量可以在该文件内引用。

ARG VERSION=latest

FROM busybox:${VERSION} # FORM busybox:latest

LABEL

指令将数据添加到Image中。一个是键值对。若要在值内使用引号和反斜杠,就像在命令行解析中一样。

LABEL = = = …

例子:

LABEL “com.example.vendor”=“ACME Incorporated”

LABEL com.example.label-with-value=“foo”

LABEL version=“1.0”

LABEL description="This text illustrates

that label-values can span multiple lines."

EXPOST

指令通知Docker容器在运行时侦听指定的网络端口。您可以指定端口是否侦听TCP或UDP,如果未指定协议,则默认为TCP。

实际上他并无卵用。这里指定的端口仅仅只是作为文档给其他的人看。

EXPOSE [/…]

ENV

设置环境变量,该环境变量类似于linux中export的设置方法,区别在于他是永久的,所以他可以在后续的shell命令里使用该值。

ENV

ENV = =…

例子:

ENV HI HELLO

RUN echo “${HI}” # Hello

COPY

复制指令,从上下文目录中复制文件或者目录到容器里指定路径。

COPY [–chown=:] <源路径1>… <目标路径>

COPY [–chown=:] [“<源路径1>”,… “<目标路径>”]

ADD

ADD 指令和 COPY 的使用格式一致(同样需求下,官方推荐使用 COPY)。功能也类似,不同之处如下:

  • ADD 的优点:在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。
  • ADD 的缺点:在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。

RUN

执行shell命令

CMD

CMD [“<可执行文件或命令>”,“”,“”,…]

CMD

类似于 RUN 指令,用于运行程序,但二者运行的时间点不同:

  • CMD 在docker run 时运行。
  • RUN 是在 docker build。

作用:为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖。

注意:如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。

CMD

CMD [“<可执行文件或命令>”,“”,“”,…]

CMD [“”,“”,…] # 该写法是为 ENTRYPOINT 指令指定的程序提供默认参数

ENTRYPOINT

类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序。

但是, 如果运行 docker run 时使用了 --entrypoint 选项,此选项的参数可当作要运行的程序覆盖 ENTRYPOINT 指令指定的程序。

优点:在执行 docker run 的时候可以指定 ENTRYPOINT 运行所需的参数。

注意:如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效。

可以搭配 CMD 命令使用:一般是变参才会使用 CMD ,这里的 CMD 等于是在给 ENTRYPOINT 传参,以下示例会提到。

ENTRYPOINT [“”,“”,“”,…]

WORKDIR

指定工作目录。用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在。(WORKDIR 指定的工作目录,必须是提前创建好的)。

docker build 构建镜像过程中的,每一个 RUN 命令都是新建的一层。只有通过 WORKDIR 创建的目录才会一直存在。

WORKDIR <工作目录路径>

USER

用于指定执行后续命令的用户和用户组,这边只是切换后续命令执行的用户(用户和用户组必须提前已经存在)。

USER <用户名>[:<用户组>]

HEALTHCHECK

用于指定某个程序或者指令来监控 docker 容器服务的运行状态。

HEALTHCHECK [选项] CMD <命令> #设置检查容器健康状况的命令

HEALTHCHECK [选项] CMD <命令> # CMD 后面跟随的命令使用,可以参考 CMD 的用法。

ONBUILD

他不会在本次docker build的时候执行,会在子镜像构建的时候执行后面的

ONBUILD

MAINTAINER (官方不推荐)

这个是将该镜像的维护人的信息写到镜像中,这是一个旧版的写法。

MAINTAINER

LABEL maintainer=

SHELL

通过该指令可以指定使用的shell解释器。

SHELL [“”, “<默认参数>”]

VOLUME

定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。

在启动容器 docker run 的时候,我们可以通过 -v 参数修改挂载点。

作用:

  • 避免重要的数据,因容器重启而丢失,这是非常致命的。
  • 避免容器不断变大。

VOLUME [“<路径1>”, “<路径2>”…]

VOLUME <路径>

Dockerfile的构建原理


docker会在执行每条Dockerfile的指令时会对引入的基础镜像进行操作。

每操作一步会运行镜像->生成容器->修改容器->提交容器->生成新的镜像->删除容器,然后在新的镜像上继续修改提交,反复如此,最后生成出最终镜像。这些在中间生成的镜像被称为中间层镜像。

我们可以通过来看生成镜像的过程。

Dockerfile源文件和上下文目录

2020/01/18 11:34 17 .dockerignore

2020/01/18 14:52 277 Dockerfile

2020/01/18 14:45

src

FROM centos

LABEL maintainer=“wm @163.com”

RUN curl --silent --location https://rpm.nodesource.com/setup_12.x | bash -

&& yum -y install nodejs

WORKDIR /root/project

COPY https://blog.csdn.net/2401_/article/details/ https://blog.csdn.net/2401_/article/details/

RUN cd src

&& npm install

EXPOSE 8080:80

构建过程

E:PJ程序设计docker容器技术dome odejsDockerfile>docker build -t demo .

Sending build context to Docker daemon 22.02kB

Step 1/7 : FROM centos

—> cac

Step 2/7 : LABEL maintainer=“wm @163.com” #修改镜像

—> Running in 0a9bdf29772d #运行0a9bdf29772d容器

Removing intermediate container 0a9bdf29772d #删除0a9bdf29772d容器

—> 6bed20c22168 #生成新的镜像

Step 3/7 : RUN curl --silent --location https://rpm.nodesource.com/setup_12.x | bash - && yum -y install nodejs

—> Running in a6f52a14bfbc

  • rpm -q --whatprovides redhat-release || rpm -q --whatprovides centos-release || rpm -q --whatprovides cloudlinux-release || rpm -q --whatprovides sl-release
  • uname -m
  • curl -sLf -o /dev/null ‘https://rpm.nodesource.com/pub_12.x/el/8/x86_64/nodesource-release-el8-1.noarch.rpm’

instead of the NodeSource repository, the AppStream’s version of Node.js has to be disabled.

  • yum module disable -y nodejs

CentOS-8 - AppStream 1.3 MB/s | 5.9 MB 00:04

CentOS-8 - Base 190 kB/s | 4.0 MB 00:21

CentOS-8 - Extras 367 B/s | 2.1 kB 00:05

Dependencies resolved.

================================================================================

Package Architecture Version Repository Size

================================================================================

Disabling modules:

nodejs

Transaction Summary

================================================================================

Complete!

  • mktemp
  • curl -sL -o ‘/tmp/tmp.w4Aojk1oBL’ ‘https://rpm.nodesource.com/pub_12.x/el/8/x86_64/nodesource-release-el8-1.noarch.rpm’
  • rpm -i --nosignature --force ‘/tmp/tmp.w4Aojk1oBL’
  • rm -f ‘/tmp/tmp.w4Aojk1oBL’
  • rpm -qa ‘node|npm’ | grep -v nodesource

sudo yum install gcc-c++ make

curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

sudo yum install yarn

Node.js Packages for Enterprise Linux 8 - x86_6 37 kB/s | 94 kB 00:02

Last metadata expiration check: 0:00:01 ago on Sun Jan 19 08:42:03 2020.

Dependencies resolved.

================================================================================

Package Arch Version Repository Size

================================================================================

Installing:

nodejs x86_64 2:12.14.1-1nodesource nodesource 22 M

Installing dependencies:

python2 x86_64 2.7.16-12.module_el8.1.0+219+cf9e6ac9 AppStream 109 k

python2-libs x86_64 2.7.16-12.module_el8.1.0+219+cf9e6ac9 AppStream 6.0 M

python2-pip-wheel

noarch 9.0.3-14.module_el8.1.0+219+cf9e6ac9 AppStream 1.2 M

python2-setuptools-wheel

noarch 39.0.1-11.module_el8.1.0+219+cf9e6ac9 AppStream 289 k

Installing weak dependencies:

python2-pip noarch 9.0.3-14.module_el8.1.0+219+cf9e6ac9 AppStream 2.0 M

python2-setuptools

noarch 39.0.1-11.module_el8.1.0+219+cf9e6ac9 AppStream 643 k

Enabling module streams:

python27 2.7

Transaction Summary

================================================================================

Install 7 Packages

Total download size: 32 M

Installed size: 104 M

Downloading Packages:

(1/7): python2-2.7.16-12.module_el8.1.0+219+cf9 165 kB/s | 109 kB 00:00

(2/7): python2-pip-9.0.3-14.module_el8.1.0+219+ 571 kB/s | 2.0 MB 00:03

(3/7): python2-pip-wheel-9.0.3-14.module_el8.1. 409 kB/s | 1.2 MB 00:02

(4/7): python2-libs-2.7.16-12.module_el8.1.0+21 1.5 MB/s | 6.0 MB 00:03

(5/7): python2-setuptools-39.0.1-11.module_el8. 1.7 MB/s | 643 kB 00:00

(6/7): python2-setuptools-wheel-39.0.1-11.modul 805 kB/s | 289 kB 00:00

(7/7): nodejs-12.14.1-1nodesource.x86_64.rpm 1.7 MB/s | 22 MB 00:12


Total 1.8 MB/s | 32 MB 00:17

warning: /var/cache/dnf/AppStream-02e86d1c976ab532/packages/python2-2.7.16-12.module_el8.1.0+219+cf9e6ac9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY

CentOS-8 - AppStream 1.6 MB/s | 1.6 kB 00:00

Importing GPG key 0x8483C65D:

Userid : “CentOS (CentOS Official Signing Key) ”

Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D

From : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

Key imported successfully

warning: /var/cache/dnf/nodesource-c1a37d2599ffab0c/packages/nodejs-12.14.1-1nodesource.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 34fa74dd: NOKEY

Node.js Packages for Enterprise Linux 8 - x86_6 1.6 MB/s | 1.6 kB 00:00

Importing GPG key 0x34FA74DD:

Userid : “NodeSource ”

Fingerprint: 2E55 207A 95D9 944B 0CC9 3261 5DDB E8D4 34FA 74DD

From : /etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL

Key imported successfully

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

Preparing : 1/1

Installing : python2-setuptools-wheel-39.0.1-11.module_el8.1.0+21 1/7

Installing : python2-pip-wheel-9.0.3-14.module_el8.1.0+219+cf9e6a 2/7

Installing : python2-libs-2.7.16-12.module_el8.1.0+219+cf9e6ac9.x 3/7

Installing : python2-pip-9.0.3-14.module_el8.1.0+219+cf9e6ac9.noa 4/7

Installing : python2-setuptools-39.0.1-11.module_el8.1.0+219+cf9e 5/7

Installing : python2-2.7.16-12.module_el8.1.0+219+cf9e6ac9.x86_64 6/7

Running scriptlet: python2-2.7.16-12.module_el8.1.0+219+cf9e6ac9.x86_64 6/7

Running scriptlet: nodejs-2:12.14.1-1nodesource.x86_64 7/7

Installing : nodejs-2:12.14.1-1nodesource.x86_64 7/7

Running scriptlet: nodejs-2:12.14.1-1nodesource.x86_64 7/7

Verifying : python2-2.7.16-12.module_el8.1.0+219+cf9e6ac9.x86_64 1/7

Verifying : python2-libs-2.7.16-12.module_el8.1.0+219+cf9e6ac9.x 2/7

Verifying : python2-pip-9.0.3-14.module_el8.1.0+219+cf9e6ac9.noa 3/7

Verifying : python2-pip-wheel-9.0.3-14.module_el8.1.0+219+cf9e6a 4/7

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
9.0.3-14.module_el8.1.0+219+cf9e6a 2/7

Installing : python2-libs-2.7.16-12.module_el8.1.0+219+cf9e6ac9.x 3/7

Installing : python2-pip-9.0.3-14.module_el8.1.0+219+cf9e6ac9.noa 4/7

Installing : python2-setuptools-39.0.1-11.module_el8.1.0+219+cf9e 5/7

Installing : python2-2.7.16-12.module_el8.1.0+219+cf9e6ac9.x86_64 6/7

Running scriptlet: python2-2.7.16-12.module_el8.1.0+219+cf9e6ac9.x86_64 6/7

Running scriptlet: nodejs-2:12.14.1-1nodesource.x86_64 7/7

Installing : nodejs-2:12.14.1-1nodesource.x86_64 7/7

Running scriptlet: nodejs-2:12.14.1-1nodesource.x86_64 7/7

Verifying : python2-2.7.16-12.module_el8.1.0+219+cf9e6ac9.x86_64 1/7

Verifying : python2-libs-2.7.16-12.module_el8.1.0+219+cf9e6ac9.x 2/7

Verifying : python2-pip-9.0.3-14.module_el8.1.0+219+cf9e6ac9.noa 3/7

Verifying : python2-pip-wheel-9.0.3-14.module_el8.1.0+219+cf9e6a 4/7

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-6ovSndvp-77)]

[外链图片转存中…(img-mg4ZSSC4-77)]

[外链图片转存中…(img-gx5csvZV-78)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

今天的文章 2026年docker最新版本是多少(docker升级版本)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2026-03-14 23:51
下一篇 2025-02-14 11:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/54039.html