简单易懂的Docker基础知识

Docker是什么? - 简单易懂 1.1、什么是DockerDocker是一个开放源代码软件项目,项目主要代码在2013年开源于GitHub。它是云服务技术上的一次创新,让应用程序布署在软件容器下的工作可以自动化进行,借此在Linux 操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。Docker利用Linux核心中的资源分脱机制,例如cgroups,以及Linux核心名字空间(name space),来创建独立的软件容器(containers。 阅读详情

虚拟化和云计算已经是一个很火热技术话题了,基于虚拟化技术,我们可以实现对硬件资源的充分利用,实现对软件运行环境的隔离。但是传统的虚拟化技术,基本都是通过虚拟一个个单独的操作系统来实现虚拟化的需求。这虽然在一定程度上增加了硬件资源的利用率,但是这样的虚拟化解决方案,有时却显得不是那么聪明,在许多场景下依然显得很笨重,相比于应用软件的开销,有可能虚拟机系统的开销比应用本身还要高。所以,在一些轻量化的场景下,当前的虚拟化技术就无法很好的发挥其作用了。这个问题随着Docker的出现,拥有了更为完美的解决方案。

Docker是基于LXC虚拟化技术实现的新型虚拟化技术,其核心思想,在我个人理解来看,就是将开发人员的代码需要的依赖环境作为虚拟化的“单位”,至于操作系统,所有的“单位”都共用宿主机的操作系统。而这一个个的“单位”就是一个个的docker,即所谓的容器。用户可以将这些依赖,环境等打包起来,制作成一个模板,方便迁移,而这个模板就是所谓的镜像,通过镜像,用户可以很方便的制作出一个个的容器。而这些镜像如何管理呢?很明显,我们可以将这些镜像放在一个固定的地方,我们每当要用的时候都去这个地方取就好了,这个地方就叫镜像仓库。

Docker的设计思想和面向对象的思想很类似,镜像就相当于一个类,一个容器就相当于用这个类实例化出来的具体实例。

Docker安装

本文基于Centos系统安装部署Docker,其他操作系统的部署方法还请百度。需要注意的是,我们需要Centos系统的内核版本高于3.8,所以,我们采用Centos7.7版本的操作系统。

安装之前,我们先要通过yum安装一些基础的yum源,如epel等,此处不再赘述,安装完成后,我们来安装docker的yum源:

$ yum install -y yum-utils
$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

此处我们可以看到,我们安装了一个阿里云提供的yum源,此处需要说明一下,自2017年3月2号,Docker团队发布了Docker EE版和Docker CE版,即企业版和社区版。而且,Docker团队还更改了社区版的版本号命名规则,在此之前,Docker一致遵循大小版本号的规范,自此之后,Docker改为使用时间的方式来作为版本号,比如2017年3月2日发布的第一个CE版本的版本号是17.03,Docker官方每个季度都会更新一个季度版本,也就是一年内会有4个版本。

从上图中,我们可以看到,截至当前,阿里云的yum源中更新到了19.03.4这个版本,我们使用yum来安装:

$ yum -y install docker-ce

安装完成后,我们需要准备一下docker的配置文件及创建相关的目录:

$ mkdir /etc/docker
$ vim /etc/docker/daemon.json
$ cat /etc/docker/daemon.json 
{
  "graph": "/data/docker",                     # docker相关文件的存放目录
  "storage-driver": "overlay2",                # docker的存储驱动
  "insecure-registries": ["registry.access.redhat.com","quay.io"],     # 私有仓库地址
  "registry-mirrors": ["https://q2gr04ke.mirror.aliyuncs.com"],        # 加速地址
  "bip": "172.7.5.1/24",                       # docker容器的IP地址段
  "exec-opts": ["native.cgroupdriver=systemd"],
  "live-restore": true
}
$ mkdir -p /data/docker

创建完成配置文件后,我们就可以启动docker了:

$ systemctl enable docker
$ systemctl start docker

至此,我们的Docker服务就已经安装完成了。接下来我们来学习一些Docker命令。

Docker命令

1、docker info命令

我们安装好Docker之后,需要检查一下Docker是否安装成功了,此时我们就可以通过docker info命令来查看:

$ docker info
Client:
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 19.03.4
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: systemd
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: b34a5c8af56e510852c35414db4c1f4fa6172339
 runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-1062.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 971.8MiB
 Name: localhost.localdomain
 ID: UDIS:DXAS:7BS2:6YN4:MQ5D:NCWY:LRTN:JZTR:6T7H:FTED:HUN6:6T3X
 Docker Root Dir: /data/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  quay.io
  registry.access.redhat.com
  127.0.0.0/8
 Registry Mirrors:
  https://q2gr04ke.mirror.aliyuncs.com/
 Live Restore Enabled: true

这个命令为我们列出来一系列docker服务相关的信息,这就说明我们的Docker服务安装部署是成功的。

2、docker run 命令

当我们需要启动一个容器的时候,我们就需要用到docker run命令,此命令用于创建一个容器:

命令格式:
docker run [选项] [镜像名] [命令]

接下来,我们先从hello world开始:

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

我们利用一个官方镜像hello-world,启动了一个容器。当我们启动容器时,docker程序会先从本地查找相对应的镜像,如果发现本地没有,则会从官方镜像仓库去拉取对应的镜像,然后再根据镜像来启动容器。我们看到我们启动的容器,输出了一段话。稍后我们再继续介绍docker run命令相关的参数等,我们先来看下一个命令。

3、docker hub 网站

dockerhub是一个官方的镜像仓库,类似于github,网站地址是:https://hub.docker.com 这个网站提供了免费的镜像托管服务,我们可以注册一个账号来讲我们自己的镜像托管到上面。说到这里,我们就需要了解一下镜像的命名结构,一个完整的镜像,名称如下:

仓库域名/用户名/镜像名:镜像标签

Dockerhub的仓库域名是docker.io,这里的用户名就是指你在dockerhub网站上注册时的用户名,也是你的登录名,镜像名就是指具体的镜像,后面冒号后面的是该镜像的标签,这个标签可以是版本号或者备注信息等等。这里需要注意一下,因为docker是按照英文冒号去分隔镜像名和标签名的,所以,在定义标签时要避免出现冒号。

4、docker login 命令

当我们完成了在dockerhub网站的注册后,我们就可以使用docker login命令来登录dockerhub网站了,从而可以来使用这个网站为我们托管的镜像:

$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: zhy200123
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

我们可以看到,当我们使用docker login命令时,默认我们登录的就是dockerhub网站,我们输入正确的用户名和密码后就可以完成登录,提示信息还告诉我们,我们的密码通过未加密的形式存放在了/root/.docker/config.json这个文件中。我们登录成功后,就可以很方便的去使用仓库中的镜像资源了。当我们需要访问我们自己的私有仓库地址时,可以使用如下命令:

$ docker login http://私有仓库地址

5、docker images 命令

docker images这个命令可以用来查看我们本地已经存在的镜像,此命令和docker image ls命令效果一样:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              fce289e99eb9        10 months ago       1.84kB

$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              fce289e99eb9        10 months ago       1.84kB

在这个命令的输出结果中,我们可以看到刚才我们用过的那个hello-world镜像,输出信息中显示了此镜像的image id,这个id是镜像的唯一标识符。

6、docker search 命令

当我们想查找一下仓库中有哪些命令时,我们就可以通过此命令来实现,比如,我们现在想在仓库中查找一个名叫alpine的镜像,此时我们就可以通过这个命令来完成:

$ docker search alpine
NAME                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
alpine                                 A minimal Docker image based on Alpine Linux…   5793                [OK]                
mhart/alpine-node                      Minimal Node.js built on Alpine Linux           444                                     
anapsix/alpine-java                    Oracle Java 8 (and 7) with GLIBC 2.28 over A…   428                                     [OK]
frolvlad/alpine-glibc                  Alpine Docker image with glibc (~12MB)          218                                     [OK]
gliderlabs/alpine                      Image based on Alpine Linux will help you wi…   180                                     
mvertes/alpine-mongo                   light MongoDB container                         106                                     [OK]
alpine/git                             A  simple git container running in alpine li…   100                                     [OK]
yobasystems/alpine-mariadb             MariaDB running on Alpine Linux [docker] [am…   52                                      [OK]
kiasaki/alpine-postgres                PostgreSQL docker image based on Alpine Linux   45                                      [OK]
...

7、docker pull 命令

当我们使用docker search命令查找到了我们需要的镜像后,我们就可以通过docker pull 命令把这个镜像给拉取到本地,供我们使用:

$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
89d9c30c1d48: Pull complete
Digest: sha256:c19173c5ada610a5989151111163d28a67368362762534d8a8121ce95cf2bd5a
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest

$ docker pull alpine:3.10.1
3.10.1: Pulling from library/alpine
050382585609: Pull complete 
Digest: sha256:6a92cd1fcdc8d8cdec60f33dda4db2cb1fcdcacf3410a8e05b3741f44a9b5998
Status: Downloaded newer image for alpine:3.10.1
docker.io/library/alpine:3.10.1

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
alpine              latest              965ea09ff2eb        2 weeks ago         5.55MB
alpine              3.10.1              b7b28af77ffe        3 months ago        5.58MB
hello-world         latest              fce289e99eb9        10 months ago       1.84kB

我们可以注意到,当我们使用docker pull命令拉取镜像时,并没有遵循上面提到的镜像的命名规则,这是因为,我们使用docker login命令成功登陆后,默认就会从docker.io/library/这个仓库中去拉取数据,所以,我们可以省略镜像名前的仓库名等。此时,我们就可以看到,我们把公共仓库中的镜像拉取到了本地,而且,当我们没有指定镜像的标签时,系统会自动帮我们拉取标签是latest的镜像,也就是最新的版本。

8、docker tag 命令

当我们把镜像拉取到本地后,我们还可以给镜像打个标签,甚至修改镜像名,此时就需要用到我们的docker tag命令了:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
alpine              latest              965ea09ff2eb        2 weeks ago         5.55MB
alpine              3.10.1              b7b28af77ffe        3 months ago        5.58MB
hello-world         latest              fce289e99eb9        10 months ago       1.84kB

$ docker tag 965ea09ff2eb zhy200123/alpine:new
$ docker tag b7b28af77ffe zhy200123/minilinux
$ docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
zhy200123/alpine      new                 965ea09ff2eb        2 weeks ago         5.55MB
alpine                latest              965ea09ff2eb        2 weeks ago         5.55MB
alpine                3.10.1              b7b28af77ffe        3 months ago        5.58MB
zhy200123/minilinux   latest              b7b28af77ffe        3 months ago        5.58MB
hello-world           latest              fce289e99eb9        10 months ago       1.84kB

我们可以看到,利用docker tag命令可以给镜像打新的标签或者改名字,我们根据的就是镜像的image id,当我们不指定镜像的标签名时,系统就默认给这个镜像打上了lates标签,这一点是需要我们注意的。另外当我们在使用docker tag命令给镜像打标签时,镜像名前面需要加上我们的仓库用户名,此处是因为dokcer login成功了,所以省略了docker.io这个仓库域名。

9、docker ps 命令

当我们通过镜像创建了容器之后,我们需要查看当前服务器上有哪些容器,此时,我们就可以用到docker ps命令了:

$ docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
6995094bb693        hello-world         "/hello"            24 hours ago        Exited (0) 24 hours ago                       competent_shannon

10、docker rm 命令

当一个容器运行结束了,我们从docker ps的结果中可以看到,这个容器的状态已经变成了Exited,如果这个容器不再需要了,那么我就可以通过docker rm命令来将这个容器删除掉:

$ docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
6995094bb693        hello-world         "/hello"            24 hours ago        Exited (0) 24 hours ago                       competent_shannon

$ docker rm 6995094bb693
6995094bb693

$ docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

我们可以看到,我们通过容器的container id来删除掉这个容器。

11、docker rmi 命令

当我们想要删除一个不用的镜像时,那我们就可以用docker rmi命令来删除容器,删除时后面可以跟镜像的镜像ID或者镜像名,但是需要注意如下几点:

  1. 当同一个镜像拥有多个标签时,docker rmi命令只是删除了该镜像多个标签中的指定标签,并不影响镜像文件本身,但当镜像只剩下一个标签时,此时就会彻底删除镜像;

  2. 当docker rmi命令后面跟的是镜像ID时,会尝试删除所有指向该镜像的标签,然后删除镜像文件本身,如果该镜像存在多个标签,默认无法删除,需要加-f进行删除;

  3. 如果有基于该镜像创建的容器,且该镜像只有一个标签时,则默认无法删除镜像,需要先通过docker rm删除容器,然后再用docker rmi删除镜像,或者使用docker rmi -f强制删除(不推荐)。

$ docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
9f92d8e60451        hello-world         "/hello"            24 seconds ago      Exited (0) 22 seconds ago                       keen_sammet

$ docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
alpine                latest              965ea09ff2eb        2 weeks ago         5.55MB
zhy200123/alpine      new                 965ea09ff2eb        2 weeks ago         5.55MB
alpine                3.10.1              b7b28af77ffe        3 months ago        5.58MB
zhy200123/minilinux   latest              b7b28af77ffe        3 months ago        5.58MB
hello-world           latest              fce289e99eb9        10 months ago       1.84kB

$ docker rmi fce289e99eb9
Error response from daemon: conflict: unable to delete fce289e99eb9 (must be forced) - image is being used by stopped container 9f92d8e60451

从上面的命令结果可以看到,此时如果我们想删除掉这个镜像是不行的,除非加上-f选项强制删除,或者先删除容器,再删除镜像

$ docker rmi -f fce289e99eb9
Untagged: hello-world:latest
Untagged: hello-world@sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Deleted: sha256:fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e

$ docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
alpine                latest              965ea09ff2eb        2 weeks ago         5.55MB
zhy200123/alpine      new                 965ea09ff2eb        2 weeks ago         5.55MB
alpine                3.10.1              b7b28af77ffe        3 months ago        5.58MB
zhy200123/minilinux   latest              b7b28af77ffe        3 months ago        5.58MB

$ docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
9f92d8e60451        fce289e99eb9        "/hello"            3 minutes ago       Exited (0) 3 minutes ago                       keen_sammet

此时,我们可以看到,我们使用-f参数,强制删除了镜像,但是其启动的容器还在。

12、docker run命令的参数们

前面我们提到了docker run 命令,这个命令是用来创建一个容器,接下来我们来看下这个命令的常用选项有哪些:

-d, --detach               Run container in background and print container ID  将容器置入后台运行
-e, --env list             Set environment variables  为容器设置环境变量
-i, --interactive          Keep STDIN open even if not attached  保持容器标准输出,用于交互
--name string              Assign a name to the container  为容器起一个名字
-p, --publish list         Publish a container's port(s) to the host  指定容器暴露的端口号
-P, --publish-all          Publish all exposed ports to random ports  随机暴露容器的一个端口号
--rm                       Automatically remove the container when it exits  当容器退出后自动删除
-t, --tty                  Allocate a pseudo-TTY  分配tty设备,一般和-i选项搭配使用,用于交互
-u, --user string          Username or UID (format: <name|uid>[:<group|gid>])  设置容器运行的用户

13、docker exec 命令

docker exec 命令用于在运行着的容器中执行命令:

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
389c610ac450        alpine              "/bin/sh"           About an hour ago   Up About an hour                        exciting_satoshi

$ docker exec 389c610ac450 ls
bin
dev
etc
home
lib
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

$ docker exec -d 389c610ac450 ls
$ docker exec -ti 389c610ac450 ls
bin    etc    lib    mnt    proc   run    srv    tmp    var
dev    home   media  opt    root   sbin   sys    usr

我们看到,这个命令也有一些选项,分别是-d,-i,-t,其意义等同于docker run命令中对应的选项的意义。

14、docker commit 命令

docker commit命令用来制作镜像,当一个容器中的命令执行完成后,容器会退出,如果我们对容器进行了更改,这些更改也不会保存,此时我们就需要用这个命令来制作一个新的镜像。在使用这个命令时,我们一般需要使用-p选项,此时该选项会暂停容器,保证我们在commit的过程中容器不会被改变,我们还可以直接使用-t选项给新镜像打好标签。

15、docker push 命令

当我们制作好新的镜像后,我们就可以使用docker push命令来将我们的镜像推送到我们的镜像仓库中。

总结

上述我们介绍了docker常用的命令,在新版docker中,这些命令做了新的改变,例如对于容器的管理,新的版本提供的命令是 docker container [CMD],对于镜像的管理为docker image [CMD]这样的格式,这些可以让我们更明确的去管理docker相关的各类资源,所以我们更建议使用新版的docker命令来管理资源。

Docker基础知识 docker基础知识 阅读详情

相关推荐

深入解析MATLAB四旋翼仿真案例asbQuadcopter的核心模块与优化技巧

本文深入解析了MATLAB/Simulink中的四旋翼无人机官方案例asbQuadcopter,详细拆解了其指令、传感器、控制器、本体与环境等核心模块的工作原理。重点探讨了经典的PID双环控制结构、传感器噪声模拟、模型替换方法以及系统化的PID参数调优技巧,旨在帮助用户从“开箱即用”过渡到深度定制与优化,构建更精准的仿真模型。

weixin_29171087的博客 361

云原生之docker常用基础命令

一、Docker 环境信息命令:docker info、docker version。 二、系统日志信息常用命令:docker events、docker logs、docker history。 三、容器的生命周期管理命令:docker create、docker run。

Lion_Long的博客 828

在Mac上搭建本地AI工作流:Dify与DeepSeek的完美结合

本文介绍了在Mac上搭建本地AI工作流的方法,结合Dify平台和DeepSeek模型。Dify是一个开源的大语言模型应用开发平台,支持可视化AI应用开发。部署步骤包括:1)安装Homebrew和Docker;2)克隆Dify代码库;3)配置环境变量并启动服务。同时,使用Ollama工具本地部署DeepSeek模型,将其集成到Dify中创建聊天助手。通过配置模型接口和新建应用,用户可以在本地环境中实现AI对话功能。这种方案既保证了数据隐私,又提供了灵活的AI应用开发能力。

Linda的自动化测试之旅 1535

centos7上安装docker 17.06ce,使用的xfs文件系统不支持d-type的问题

Jan 9 19:04:13 yanfa11 kernel: overlayfs: upper fs needs to support d_type. This is an invalid configuration. Jan 9 19:04:13 yanfa11 kubelet: W0109 19:04:13.327228 3021 pod_container_deletor.go:...

三月泡生长在阳春三月天,把鲜红的美味奉献给世人 5028

SAP MM自动化进阶:STO交货单自动创建的配置与优化

本文深入解析了SAP MM模块中实现公司间库存调拨订单(STO)交货单自动创建的完整配置流程与优化策略。通过激活自动交货与绑定发货点两大核心配置,打通自动化链路。重点探讨了如何集成ATP可用性检查以智能处理库存不足等异常场景,确保自动化流程的可靠性与业务贴合度,并提供了进阶监控与问题排查方法,助力企业显著提升供应链效率。

weixin_29206669的博客 124

2025.06.25【微生物】|Emu工具安装与使用详解:全长16S扩增子微生物丰度分析

Emu是一款基于贝叶斯方法的微生物多样性分析工具,专为处理高错误率的长读长16S/18S扩增子数据优化。本文详细介绍了Emu的安装与使用方法:1)通过conda创建独立环境并安装Emu;2)提供SILVA等预构建数据库的下载指南,并说明自定义数据库的构建方法;3)演示单样本和多样本分析流程,解读关键输出文件;4)介绍丰度表合并、分类等级汇总等实用功能扩展;5)建议后续分析方向。文章还附有官方GitHub链接和相关文献资源,为微生物群落结构研究提供了一套完整的分析解决方案。

1256

Docker Warning : the backing xfs filesystem is formatted without d_type support

CentOS7 下安装配置 Docker,遇到如下的WARNING, WARNING: overlay: the backing xfs filesystem is formatted without d_type support, which leads to incorrect behavior. Reformat the filesystem with ftype=1 to...

weixin_30550271的博客 1224

UVM和System verilog笔记总结(四)

virtual sequence 即虚seq,用于管理多个实sequence的执行顺序。 下面有三个sequence,此时需要virtual sequence去管理这三个的顺序。 virtual sequence和virtual sequencer需要成对写,使用例化实的sequence和sequencer控制: 此时在virtual sequence里面启动,而不是之前在test.sv里面用default或start函数启动。具体方法如下:先例化 再启动,用 `uvm_do_on 实sequence

weixin_42655118的博客 642

基于XFS文件系统的overlayfs下使用docker,为何要使用d_type=1

什么是overlayfs 首先,overlayfs是一种文件系统,也是目前dokcer在使用的最新的文件系统,其他的文件系统还有:aufs、device mapper等。而 overlayfs 其实和 aufs 是类似的。更准确的说,overlayfs,其实是 Linux 文件系统的一种上层文件系统。下面的底层的文件系统格式,是支持overlayfs的: ①:ext4 ②:xfs(必须在格式化为x...

lic的博客 7251

[MTK][Android P]如何去掉差分包中的preloader分区

最近碰到一个问题,在进行差分升级的时候,会因为某些原因导致preloader hash值不匹配,升级失败,所以需要在差分升级的时候不升级preloader。 解决的方法,就是在制作AB分区的差分升级包的时候,把目标zip解压出来,把ab_partitions.txt中的分区名去掉,同时把preloader.img去掉 修改如下: Project/build/tools/releasetool...

thonmin的专栏 1434

AHB不对称半桥反激电路设计(一)变换器拓扑工作原理详解

本文详细分析了AHB(不对称半桥)反激变换器拓扑的工作原理及关键优势。该拓扑通过谐振腔结构实现原边功率管的零电压开通(ZVS)和副边整流管的零电流关断(ZCS),显著提升效率至95%以上。文章阐述了6个工作阶段的时序特征,包括谐振电感电流和电容电压的数学模型推导。AHB拓扑具有漏感能量回收、宽电压输出(适配PD快充等场景)和协同储能等优势,相比传统方案可缩小变压器体积30%,成为100-300W隔离电源的理想选择。

【Simon】的博客 7147

【Docker】进阶之路:(十三)Docker Swarm

Docker Swarm是Docker官方提供的集群管理工具,它的主要作用是将Docker主机池转变为单个虚拟Docker主机,把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docke资源。Docker Swarm提供了标准的Docker API,所有任何已经与Docker守护程序通信的工具都可以使用Swarm轻松地扩展到多个主机。

圈小圈DBA的博客 1249

ZYNQ Petalinux编译系统启动文件实战指南

本文提出的混合编译加速方案实测可将编译时间从45分钟缩短至18分钟,QSPI双启动方案已在工业控制领域成功应用。Xilinx官方UG1144文档(最新v2023.1版)正点原子《ZYNQ嵌入式开发实战》开源项目Meta-Petalinux(GitHub趋势项目)未来展望:随着Versal平台的普及,Petalinux将支持更多AI加速器原生驱动,值得持续关注。

QQ_778132974的博客 812

docker 没有yum_简单易懂的Docker基础知识

虚拟化和云计算已经是一个很火热技术话题了,基于虚拟化技术,我们可以实现对硬件资源的充分利用,实现对软件运行环境的隔离。但是传统的虚拟化技术,基本都是通过虚拟一个个单独的操作系统来实现虚拟化的需求。这虽然在一定程度上增加了硬件资源的利用率,但是这样的虚拟化解决方案,有时却显得不是那么聪明,在许多场景下依然显得很笨重,相比于应用软件的开销,有可能虚拟机系统的开销比应用本身还要高。所以,在一些...

weixin_42522400的博客 1827

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

docker 安装依赖_史上最全Docker环境安装指南-让安装docker简单到爆

作者:可优http://cnblogs.com/keyou1/p/11511067.html一、思考❓❔1.什么是Docker?装应用的容器开发、测试、运维都偏爱的容器化技术轻量级扩展性一次构建、多次分享、随处运行2.安装Docker难不难?So easy!此文看过之后,读者一定会有一个docker环境二、Windows上安装Docker 1.在Windows 10上安装Docker1.系统需求...

weixin_39753213的博客 1522

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

通俗易懂的Docker容器技术简单解释

什么是Docker容器 Docker的思想来自于 集装箱,在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。 Docker有三大核心概念: 镜像::镜像是docker的前置条件,就比如你需要电脑上安装一个吃鸡的手游,前提是你得去游戏中心下载它所对应的exe安装包;如果你要在docker中你需要构建一个mysql容器,那么你得先准

qq_42697508的博客 4219

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

docker简介、安装、基础知识

Docker的出现使我们开发的软件可以“带环境安装”,即安装的时候,可以把原始环境一模一样的复制过来,在自己的机器上可以运行,在别人的机器上也可以运行。Docker镜像是分层的,而如果每次传输都使用全量文件(所以用ftp的方式并不适合),显然不经济,必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。解析:指定镜像作者信息,即镜像的Author属性。4.Docker是一个轻量级的容器,我们可以把环境交给Docker管理,当我们需要移植我们的产品的时候,就可以将环境整个的迁移到另一台主机上。

2301_82330629的博客 5万+

通俗易懂,十分钟让你了解并上手 Docker

开了云原生专栏很久,但一直没怎么更新,今天就来更新一篇Docker的。主要面向新人,争取十分钟让完全新手了解Docker的作用、原理以及基本的操作

战斧的博客 8061

Docker的安装 - 简单易懂

安装一些必要的系统工具sudoyuminstall ­-y。

m0_74440466的博客 1023

docker基础知识

该文章仅介绍了一些关于Docker的基础知识孤儿卷​是 Docker 中未被任何容器关联或使用的数据卷。容器被删除时未使用-v参数同步清理关联卷;手动创建了数据卷但未挂载到容器;容器意外终止或配置错误导致卷未被正确释放。孤儿卷会持续占用宿主机存储空间,若未及时清理可能引发资源浪费。方法一:手动删除单个体积docker volume rm <孤儿卷名称>方法二:批量清理所有未使用卷注:此命令会删除所有未被任何容器或服务引用的孤儿卷,操作前会要求用户确认。

weixin_73735141的博客 1425

通俗易懂了解什么是docker?以及docker的各种安装环境

带你轻松了解什么是docker以及docker的各种安装环境

javaeEEse的博客 1万+

Docker 入门教程简单易懂

Docker 入门教程Docker 介绍CentOS Docker 安装系统要求功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入...

fanls_strive的博客 246

美亚排名超高的Docker入门书,不止简单易懂

在美国亚马逊,有一本书的影响力超高的Docker入门书,在操作系统分类中排行第一,超越了众多实力派Docker书,众多五星好评。也许你有所耳闻,这本书就是《深入浅出Doc...

AI科技大本营 631

Docker(简单易懂)

dockerfile 是用来构建docker镜像的文件!命令参数脚本!构建步骤:1、 编写一个dockerfile文件2、 docker build 构建称为一个镜像3、 docker run运行镜像4、 docker push发布镜像(DockerHub 、阿里云仓库)

zky__sch的博客 491

Docker超详细学习教程,简单易懂(小白必看)

事先说明,本教程使用的是Mac版docker桌面版,命令执行都是在Mac终端实现 Docker概述与历史 该处去官网看一下或者自行百度,个人建议还是要了解一下,毕竟学习一个新技术首先就是要了解该技术,不要觉得无用 Docker安装 镜像(image): docker镜像就好比是一个模板,就可以通过这个模板来创建容器服务,nginx镜像 ==>run ==> nginx01容器(提供服务器),通过这个镜像就可以创建多个容器(最终服务运行或者项目运行就是在容器中的) 容器(Container):

IT_Wallace的博客 3336

Docker安装(简单易懂)

Docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器,让服务器的性能可以压榨到极致!接着配置阿里云镜像(docker是国外软件,使用官方下载速度会较慢)通过使用Docker,部署应用 如同搭积木一样!Docker:打包镜像发布测试,一键运行!使用容器化之后,开发和测试环境是高度一致的。传统:通过大量的帮助文档,安装程序!1. 应用于更快速的交付和部署。Docker是一个容器化平台。然后部署docker安装依赖。2. 更便捷的升级和扩缩容。4.更高效的计算资源利用。3. 更简单的系统运维。

2301_79065514的博客 697
上一篇: Kubernetes架构简介
下一篇: Redis数据迁移至Codis集群方案
后场技术
博客等级 码龄11年 156粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值