当前位置: 首页 > news >正文

【云原生|Docker】03-docker的基础操作

目录

前言

查询相关

容器相关 

1.  容器启动 

2.   容器关闭

3.  重启容器

4.  暂停容器

5.  删除容器

 6.  docker run参数汇总

镜像相关

1.  镜像推送至仓库 

2.   docker  image load使用

3.  docker image import使用 

4.  dokcer image参数汇总 


前言

        容器的命令操作分为三大块,分别为:Common Commands,Management Commands,Swarm Commands。本章主要介绍容器的启动,停止,镜像的上传,下载,这几个方面来说docker的操作命令。 

查询相关

 1.  查看所有容器(显示启动和未启动的)

 docker   ps   -a

[root@clinet ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS                       PORTS     NAMES
9600ac1329ba   nginx     "/docker-entrypoint.…"   41 minutes ago   Exited (137) 3 minutes ago             nginx_1
7e18dace050a   nginx     "/docker-entrypoint.…"   45 minutes ago   Exited (0) 2 minutes ago               beautiful_bhaskara
c59a4416e418   nginx     "/docker-entrypoint.…"   53 minutes ago   Up 53 minutes                80/tcp    nginx_container
9090f333a406   nginx     "/docker-entrypoint.…"   3 days ago       Exited (0) 3 days ago                  hardcore_heisenberg
[root@clinet ~]# 

2.  查看已启动的容器(只显示已启动的) 

 docker   ps 

[root@clinet ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
c59a4416e418   nginx     "/docker-entrypoint.…"   54 minutes ago   Up 54 minutes   80/tcp    nginx_container
[root@clinet ~]#

CONTAINER ID :每启动一个容器都会随机生成一个id;

IMAGE :启动容器所用的镜像名称;

COMMAND : 启动容器后在容器内部前台运行的进程,当容器内前台运行的进程结束后,该容器就会退出(不再是up状态);
CREATED :容器创建了多长时间;

STATUS :容器的状态,分别有up(运行),exited(退出),paused(暂停);

PORTS :容器内监听的端口,当使用-p参数给容器端口映射之后,会显示映射端口和容器内端口;

NAMES :容器的名称,默认随机创建名称,可以使用--name 指定名称

 3.  查询docke等相关信息

docker   info

[root@clinet ~]# docker info 
Client:Context:    defaultDebug Mode: falsePlugins:buildx: Docker Buildx (Docker Inc.)Version:  v0.10.2Path:     /usr/libexec/docker/cli-plugins/docker-buildxcompose: Docker Compose (Docker Inc.)Version:  v2.16.0Path:     /usr/libexec/docker/cli-plugins/docker-composescan: Docker Scan (Docker Inc.)Version:  v0.23.0Path:     /usr/libexec/docker/cli-plugins/docker-scanServer:Containers: 5Running: 2Paused: 0Stopped: 3Images: 2Server Version: 23.0.1Storage Driver: overlay2Backing Filesystem: xfsSupports d_type: trueUsing metacopy: falseNative Overlay Diff: trueuserxattr: falseLogging Driver: json-fileCgroup Driver: cgroupfsCgroup Version: 1Plugins:Volume: localNetwork: bridge host ipvlan macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslogSwarm: inactiveRuntimes: io.containerd.runc.v2 runcDefault Runtime: runcInit Binary: docker-initcontainerd version: 2456e983eb9e37e47538f59ea18f2043c9a73640runc version: v1.1.4-0-g5fd4c4dinit version: de40ad0Security Options:seccompProfile: builtinKernel Version: 3.10.0-1160.76.1.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 2Total Memory: 1.777GiBName: clinetID: MC6B:5JJX:53U5:BGLV:SM2E:IMX3:W2IS:DQ7M:JTAE:SA6Z:QL2J:ALVSDocker Root Dir: /var/lib/dockerDebug Mode: falseRegistry: https://index.docker.io/v1/Experimental: falseInsecure Registries:127.0.0.0/8Registry Mirrors:https://mqkiky4e.mirror.aliyuncs.com/Live Restore Enabled: falseWARNING: API is accessible on http://0.0.0.0:3276 without encryption.Access to the remote API is equivalent to root access on the host. Referto the 'Docker daemon attack surface' section in the documentation formore information: https://docs.docker.com/go/attack-surface/
[root@clinet ~]# 

 4.   查询指定容器的详细信息

docker   inspect   容器名称/容器id        

[root@clinet ~]# docker inspect nginx_2
[{"Id": "9f90418a59bd2cc36bff61cab7360e7b672d152329a8517fda6696dfe4e0b7ba","Created": "2023-03-18T09:39:31.502861773Z","Path": "/docker-entrypoint.sh","Args": ["nginx","-g","daemon off;"],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 5867,"ExitCode": 0,"Error": "","StartedAt": "2023-03-18T09:39:32.038676669Z","FinishedAt": "0001-01-01T00:00:00Z"},"Image": "sha256:904b8cb13b932e23230836850610fa45dce9eb0650d5618c2b1487c2a4f577b8","ResolvConfPath": "/var/lib/docker/containers/9f90418a59bd2cc36bff61cab7360e7b672d152329a8517fda6696dfe4e0b7ba/resolv.conf","HostnamePath": "/var/lib/docker/containers/9f90418a59bd2cc36bff61cab7360e7b672d152329a8517fda6696dfe4e0b7ba/hostname","HostsPath": "/var/lib/docker/containers/9f90418a59bd2cc36bff61cab7360e7b672d152329a8517fda6696dfe4e0b7ba/hosts","LogPath": "/var/lib/docker/containers/9f90418a59bd2cc36bff61cab7360e7b672d152329a8517fda6696dfe4e0b7ba/9f90418a59bd2cc36bff61cab7360e7b672d152329a8517fda6696dfe4e0b7ba-json.log","Name": "/nginx_2","RestartCount": 0,"Driver": "overlay2","Platform": "linux","MountLabel": "","ProcessLabel": "","AppArmorProfile": "","ExecIDs": null,"HostConfig": {"Binds": null,"ContainerIDFile": "","LogConfig": {"Type": "json-file","Config": {}},"NetworkMode": "default","PortBindings": {"80/tcp": [{"HostIp": "","HostPort": "8080"}]},"RestartPolicy": {"Name": "no","MaximumRetryCount": 0},"AutoRemove": false,"VolumeDriver": "","VolumesFrom": null,"ConsoleSize": [25,118],"CapAdd": null,"CapDrop": null,"CgroupnsMode": "host","Dns": [],"DnsOptions": [],"DnsSearch": [],"ExtraHosts": null,"GroupAdd": null,"IpcMode": "private","Cgroup": "","Links": null,"OomScoreAdj": 0,"PidMode": "","Privileged": false,"PublishAllPorts": false,"ReadonlyRootfs": false,"SecurityOpt": null,"UTSMode": "","UsernsMode": "","ShmSize": 67108864,"Runtime": "runc","Isolation": "","CpuShares": 0,"Memory": 0,"NanoCpus": 0,"CgroupParent": "","BlkioWeight": 0,"BlkioWeightDevice": [],"BlkioDeviceReadBps": [],"BlkioDeviceWriteBps": [],"BlkioDeviceReadIOps": [],"BlkioDeviceWriteIOps": [],"CpuPeriod": 0,"CpuQuota": 0,"CpuRealtimePeriod": 0,"CpuRealtimeRuntime": 0,"CpusetCpus": "","CpusetMems": "","Devices": [],"DeviceCgroupRules": null,"DeviceRequests": null,"MemoryReservation": 0,"MemorySwap": 0,"MemorySwappiness": null,"OomKillDisable": false,"PidsLimit": null,"Ulimits": null,"CpuCount": 0,"CpuPercent": 0,"IOMaximumIOps": 0,"IOMaximumBandwidth": 0,"MaskedPaths": ["/proc/asound","/proc/acpi","/proc/kcore","/proc/keys","/proc/latency_stats","/proc/timer_list","/proc/timer_stats","/proc/sched_debug","/proc/scsi","/sys/firmware"],"ReadonlyPaths": ["/proc/bus","/proc/fs","/proc/irq","/proc/sys","/proc/sysrq-trigger"]},"GraphDriver": {"Data": {"LowerDir": "/var/lib/docker/overlay2/2336f15442f95701825b180a9ac0ab325d74c8d8dad4205a8b8a0a716dfd9974-init/diff:/var/lib/docker/overlay2/f6fb37fd4809d0d5117986799d12cb9ec609246413024b4a906c4070e4e38c05/diff:/var/lib/docker/overlay2/39e10f3ca43f3532ce10d40449eb46a3781880fbd3335c7083760ab85c38a102/diff:/var/lib/docker/overlay2/2ff9c5cc2fd76d8e2ded68d59092cd72aa3e1da309e71093b4cce514877d6ebe/diff:/var/lib/docker/overlay2/de238ec7feb4d53664db7156e8fcba50709a78566129c9fac7a33d76a837e939/diff:/var/lib/docker/overlay2/e11e90aa79a17f149a69c64bb10c582df04b46c68a5270ce9a650f996f48780e/diff:/var/lib/docker/overlay2/51c3c88754ee4a5b4076fb7fc94116475587bacfcf0e8dc2980bb9424df76346/diff","MergedDir": "/var/lib/docker/overlay2/2336f15442f95701825b180a9ac0ab325d74c8d8dad4205a8b8a0a716dfd9974/merged","UpperDir": "/var/lib/docker/overlay2/2336f15442f95701825b180a9ac0ab325d74c8d8dad4205a8b8a0a716dfd9974/diff","WorkDir": "/var/lib/docker/overlay2/2336f15442f95701825b180a9ac0ab325d74c8d8dad4205a8b8a0a716dfd9974/work"},"Name": "overlay2"},"Mounts": [],"Config": {"Hostname": "9f90418a59bd","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.23.3","NJS_VERSION=0.7.9","PKG_RELEASE=1~bullseye"],"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": "8f33f102953eb65c059ea29baeacf685db50aa4f2bc6c908bc85d4b5314006b8","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {"80/tcp": [{"HostIp": "0.0.0.0","HostPort": "8080"}]},"SandboxKey": "/var/run/docker/netns/8f33f102953e","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "f4f033a0135d2d8d94ad422e287660325998c9b40d6f8b0b150bdbf2497484f6","Gateway": "172.17.0.1","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"IPAddress": "172.17.0.3","IPPrefixLen": 16,"IPv6Gateway": "","MacAddress": "02:42:ac:11:00:03","Networks": {"bridge": {"IPAMConfig": null,"Links": null,"Aliases": null,"NetworkID": "5e392fc5fa9cb25d19386a7acb4f2746218fcc99a11c8b5a421614e6df0a24a0","EndpointID": "f4f033a0135d2d8d94ad422e287660325998c9b40d6f8b0b150bdbf2497484f6","Gateway": "172.17.0.1","IPAddress": "172.17.0.3","IPPrefixLen": 16,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"MacAddress": "02:42:ac:11:00:03","DriverOpts": null}}}}
]
[root@clinet ~]# ^C
[root@clinet ~]# 

 5.  查看docker版本信息

 docker   version

[root@clinet ~]# docker info  
Client:Context:    defaultDebug Mode: falsePlugins:buildx: Docker Buildx (Docker Inc.)Version:  v0.10.2Path:     /usr/libexec/docker/cli-plugins/docker-buildxcompose: Docker Compose (Docker Inc.)Version:  v2.16.0Path:     /usr/libexec/docker/cli-plugins/docker-composescan: Docker Scan (Docker Inc.)Version:  v0.23.0Path:     /usr/libexec/docker/cli-plugins/docker-scanServer:Containers: 5Running: 2Paused: 0Stopped: 3Images: 2Server Version: 23.0.1Storage Driver: overlay2Backing Filesystem: xfsSupports d_type: trueUsing metacopy: falseNative Overlay Diff: trueuserxattr: falseLogging Driver: json-fileCgroup Driver: cgroupfsCgroup Version: 1Plugins:Volume: localNetwork: bridge host ipvlan macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslogSwarm: inactiveRuntimes: io.containerd.runc.v2 runcDefault Runtime: runcInit Binary: docker-initcontainerd version: 2456e983eb9e37e47538f59ea18f2043c9a73640runc version: v1.1.4-0-g5fd4c4dinit version: de40ad0Security Options:seccompProfile: builtinKernel Version: 3.10.0-1160.76.1.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 2Total Memory: 1.777GiBName: clinetID: MC6B:5JJX:53U5:BGLV:SM2E:IMX3:W2IS:DQ7M:JTAE:SA6Z:QL2J:ALVSDocker Root Dir: /var/lib/dockerDebug Mode: falseRegistry: https://index.docker.io/v1/Experimental: falseInsecure Registries:127.0.0.0/8Registry Mirrors:https://mqkiky4e.mirror.aliyuncs.com/Live Restore Enabled: falseWARNING: API is accessible on http://0.0.0.0:3276 without encryption.Access to the remote API is equivalent to root access on the host. Referto the 'Docker daemon attack surface' section in the documentation formore information: https://docs.docker.com/go/attack-surface/
[root@clinet ~]# 

 6.  查看已下载镜像

 docker  images  /  docker   image   ls

[root@clinet ~]# docker images 
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        latest    904b8cb13b93   2 weeks ago     142MB
mysql        latest    3218b38490ce   15 months ago   516MB
[root@clinet ~]# 
[root@clinet ~]# docker image ls 
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        latest    904b8cb13b93   2 weeks ago     142MB
mysql        latest    3218b38490ce   15 months ago   516MB
[root@clinet ~]# 

容器相关 

1.  容器启动 

 语法:

        docker    run    启动一个容器

示例1: 启动一个nginx容器,让其在后台运行。 

[root@clinet ~]# docker run -d --name  nginx_container nginx 
c59a4416e41898c2015f729906e0693e6aaa065c386e8af45f414f80a3a3e320
[root@clinet ~]# 

 -d : 表示启动的容器放在后台,此时容器启动后会范围容器id

--name : 表示给指定创建容器的名称为nginx_container ,不加该参数默认随机创建名称。

nginx : 表示使用的镜像名称,也可以写为 [名称]:[版本号],加版本号则为latest

示例2:启动一个nginx容器,让其在前台运行 

[root@clinet ~]# docker run -it --name nginx_1 nginx /bin/bash
root@9600ac1329ba:/# 
root@9600ac1329ba:/#

 -it : 表示启动一个容器后给他分配一个终端,此时就是在容器的终端内。

/bin/bash :表示分配的终端shell为/bin/bash;有的容器是shell是/bin/sh。

注意:
        当我们前台启动一个容器后,我们会在容器的终端内,此时我们要是exit退出容器的终端,该容器就会正常退出(不在是up状态是exited状态

 示例3: 进入一个后台启动的容器的终端shell中。

[root@clinet ~]# docker exec -it nginx_1 /bin/bash
root@9600ac1329ba:/# 
root@9600ac1329ba:/#

exec :进入一个启动的容器中,容器需要是running状态。

-it :表示分配的终端shell为/bin/bash;有的容器是shell是/bin/sh。

/bin/bash :表示分配的终端shell为/bin/bash;有的容器是shell是/bin/sh。

2.   容器关闭

 示例1: 强制关闭一个启动的容器

[root@clinet ~]# docker kill nginx_2
nginx_2
[root@clinet ~]# 

 强制关闭的容器在docker  ps -a查看到的status状态栏为exited 137,异常退出的状态码。

示例2:正常关闭一个容器

[root@clinet ~]# docker stop nginx_container
nginx_container
[root@clinet ~]#

 正常关闭的容器在docker  ps -a查看到的status状态栏为exited 0,正常常退出的状态码。

 3.  重启容器

 示例1.  start启动容器

[root@clinet ~]# docker start  nginx_2
nginx_2
[root@clinet ~]#

示例2.  restart重启容器

[root@clinet ~]# docker restart nginx_2
nginx_2
[root@clinet ~]#

4.  暂停容器

示例1.  pasued暂停容器

[root@clinet ~]# docker restart nginx_2
nginx_2
[root@clinet ~]#

 docker ps  -a  查看的status状态为pasued

示例2.  unpasue取消暂停

[root@clinet ~]# docker unpause nginx_2
nginx_2
[root@clinet ~]#

 5.  删除容器

示例1.  删除一个已经停止的容器 

[root@clinet ~]# docker rm nginx_1
nginx_1
[root@clinet ~]# 

 示例2:删除一个还在运行的容器

[root@clinet ~]# docker rm -f nginx_2
nginx_2
[root@clinet ~]#

 -f :强制删除正在运行的容器(使用SIGKILL)

 6.  docker run参数汇总

-d: 让容器在后台运行(detached mode),并返回容器的 ID。
-it: 将容器的 STDIN 和 STDOUT 绑定到当前的终端,并使用交互模式(interactive mode)。
-p: 将容器内部的端口映射到主机上,格式为 <host_port>:<container_port>。
-v: 将主机上的目录挂载到容器内部,格式为 <host_path>:<container_path>。
--name: 为容器指定一个名称。
--rm: 容器退出时自动删除容器。
--env: 设置容器内部的环境变量,格式为 <key>=<value>。
--network: 指定容器使用的网络,可以是默认的 bridge 网络或自定义网络。
--link: 将容器连接到另一个容器,以便它们之间可以进行通信。
--restart: 指定容器退出后应该如何重启,例如 always 表示总是重启,on-failure 表示只有在退出代码不为 0 时才重启等等。
--entrypoint: 指定容器启动时要运行的命令,覆盖 Dockerfile 中指定的 CMD。
--user: 指定容器中运行的用户。
--workdir: 指定容器的工作目录。
--memory: 限制容器使用的内存量。
--cpu-shares: 设置容器使用 CPU 的权重。
--env-file: 从文件中读取环境变量并传递给容器。
--label: 给容器添加元数据标签,方便管理和搜索。
--detach-keys: 定义一个分离键,可以使用这个键来从交互式模式下退出容器并保持容器在后台运行。
--privileged: 给容器赋予所有的 Linux 内核权限。
--security-opt: 指定容器的安全选项,例如 seccomp 等。
--stop-timeout: 设置容器停止的超时时间。
--mount: 挂载一个文件系统,可以指定一个本地目录或远程存储。
--shm-size: 设置 /dev/shm 的大小,这是共享内存文件系统。--add-host: 添加主机名和 IP 地址到容器的 /etc/hosts 文件中。
--cap-add 和 --cap-drop: 分别添加和删除容器的 Linux 内核功能,例如可以限制容器访问主机上的设备等。
--cpu-period 和 --cpu-quota: 限制容器使用 CPU 的时间片和配额。
--health-cmd 和 --health-interval: 指定容器健康检查的命令和间隔。
--isolation: 指定容器的隔离级别,可以是 default、process 或 hyperv。
--log-driver 和 --log-opt: 指定容器的日志驱动和选项,例如可以将容器日志输出到文件或远程日志收集器等。
--tmpfs: 挂载一个 tmpfs 文件系统到容器内部,用于存储临时文件。
--add-host: 添加主机名和 IP 地址到容器的 /etc/hosts 文件中。
--cap-add 和 --cap-drop: 分别添加和删除容器的 Linux 内核功能,例如可以限制容器访问主机上的设备等。
--cpu-period 和 --cpu-quota: 限制容器使用 CPU 的时间片和配额。
--health-cmd 和 --health-interval: 指定容器健康检查的命令和间隔。
--isolation: 指定容器的隔离级别,可以是 default、process 或 hyperv。
--log-driver 和 --log-opt: 指定容器的日志驱动和选项,例如可以将容器日志输出到文件或远程日志收集器等。
--tmpfs: 挂载一个 tmpfs 文件系统到容器内部,用于存储临时文件。
还有很多其他的参数,可以使用 docker run --help 查看完整的参数列表。

镜像相关

1.  镜像推送至仓库 

docker image push命令用于将本地的Docker镜像推送到Docker镜像仓库。使用该命令需要将本地的镜像打上标签,指定要推送的仓库地址和名称,同时需要登录到Docker仓库。

docker image push命令的基本语法:

docker image push [OPTIONS] NAME[:TAG]

NAMETAG分别是要推送的镜像名称和标签.

以下是使用docker image push命令的步骤:

step1: 找到要推送的本地镜像的名称和标签。您可以使用docker image ls命令列出本地镜像,然后找到要推送的镜像及其标签。例如,如果要推送my-image镜像的v1.0标签,其完整名称应为my-username/my-repo:v1.0

docker image tag my-image my-username/my-repo:v1.0

step2: 登录Docker镜像仓库,使用docker login命令登录Docker账号。 

$ docker login
Username: <your username>
Password: <your password>

step3:使用docker image push命令将本地镜像推送到Docker镜像仓库

$ docker image push my-username/my-repo:v1.0

 如果您要推送的镜像名称包含默认的Docker Hub registry(即Docker Hub),则可以省略该registry的名称。例如,如果您要推送的镜像名称为my-username/myimage,则可以使用以下命令:

$ docker image push my-username/myimage:v1.0

2.   docker  image load使用

  docker image load命令用于从一个tar归档文件或标准输入中加载一个或多个Docker镜像。该命令将归档文件中的镜像加载到本地Docker引擎中,可以使用docker image ls命令来查看这些镜像。

docker image load命令的基本语法:

docker image load [OPTIONS]

 OPTIONS包括以下选项:

  • -i, --input:从指定的归档文件中加载镜像。
  • -q, --quiet:不显示加载镜像的详细信息。

示例: 假设您有一个名为my-images.tar的归档文件,其中包含了两个Docker镜像,可以使用以下命令将这些镜像加载到本地Docker引擎中:

docker image load -i my-images.tar

         在上面的示例中,-i选项用于指定要加载的归档文件,my-images.tar是归档文件的名称。加载镜像时,Docker将显示每个镜像的名称、标签、大小等信息。

请注意,docker image load命令会将归档文件中的所有镜像都加载到本地Docker引擎中。如果归档文件中包含的镜像已经存在于本地Docker引擎中,则将覆盖已有的镜像。

3.  docker image import使用 

         docker image import命令用于从文件或标准输入中导入一个文件系统作为一个新的Docker镜像。该命令将文件系统中的内容打包成一个Docker镜像,并将其保存在本地Docker引擎中。可以使用docker image ls命令来查看这个新的镜像。

基础语法:

docker image import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

OPTIONS包括以下选项:

  • --change:应用Dockerfile中的指令。
  • --message:设置导入的镜像的描述信息。

file|URL|-参数指定要导入的文件系统的路径或URL,或者使用-表示从标准输入中读取文件系统。REPOSITORYTAG参数用于指定要创建的新镜像的名称和标签。 

示例:假设您有一个名为my-file-system.tar的文件系统,您想要将其导入为一个名为my-image的Docker镜像,可以使用以下命令:

docker image import my-file-system.tar my-image:latest

         在上面的示例中,my-file-system.tar是文件系统的名称,my-image:latest是要创建的新镜像的名称和标签。

请注意,导入的文件系统不包括任何运行时状态,如进程、环境变量等。它仅包括文件系统本身的内容。如果需要在导入的镜像中运行应用程序,您可能需要通过其他方式将应用程序和相关文件导入到镜像中。

4.  dokcer image参数汇总 

docker image build:从Dockerfile构建镜像。
docker image history:显示镜像的历史记录,包括每个历史层的创建时间、作者、命令等信息。
docker image import:将来自tar归档文件的内容导入到一个文件系统镜像中。
docker image inspect:显示有关一个或多个镜像的详细信息,包括标签、创建时间、作者、命令、配置等信息。
docker image load:从一个tar归档文件或标准输入中加载一个镜像。
docker image ls:列出本地的镜像列表。
docker image prune:删除未使用的本地镜像。
docker image pull:从镜像仓库拉取镜像。
docker image push:将本地镜像推送到镜像仓库。
docker image rm:删除一个或多个本地镜像。
docker image save:将一个或多个镜像保存为一个tar归档文件。
docker image tag:为一个镜像打上一个或多个标签。

关于docker run,image,swarm的相关参数和使用我们在后续docker系列文章中还会详细说明。

相关文章:

【云原生|Docker】03-docker的基础操作

目录 前言 查询相关 容器相关 1. 容器启动 2. 容器关闭 3. 重启容器 4. 暂停容器 5. 删除容器 6. docker run参数汇总 镜像相关 1. 镜像推送至仓库 2. docker image load使用 3. docker image import使用 4. dokcer image参数汇总 前言 容器的命…...

vue2+高德地图web端开发使用

创建vue2项目我们创建一个vue2项目&#xff0c;创建vue2项目就不用再多说了吧&#xff0c;使用“vue create 项目名 ”创建即可注册高德地图高德地图官网地址&#xff1a;https://lbs.amap.com/如果是第一次使用&#xff0c;点击注册然后进入我们的控制台注册完之后进入控制台&…...

01背包问题c++

问题 问题介绍 有 N 种物品和一个容量是 V 的背包&#xff0c;每种物品都有无限件可用。 第 i 种物品的体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输出最大价值。 输入格式 第…...

ZYNQ硬件调试-------day2

ZYNQ硬件调试-------day2 1.ILA&#xff08;Integrated Logic Analyzer &#xff09; 监控逻辑内部信号和端口信号;可以理解为输出。可单独使用 2.VIO&#xff08;Virtual Input/Output &#xff09; 实时监控和驱动逻辑内部信号和端口信号&#xff0c;可以理解为触发输入。不可…...

JavaScript中Promise的简单使用及其原理

Promise是ES6最重要的特性之一&#xff0c;今天来系统且细致的研究一下Promise的用法以及原理。 按照我往常的理解&#xff0c;Promise是一个构造函数&#xff0c;有all、resolve、reject、then、catch等几个方法&#xff0c;一般情况下&#xff0c;在涉及到异步操作时才会用到…...

SpringBoot RabbitMQ 延时队列取消订单【SpringBoot系列14】

SpringCloud 大型系列课程正在制作中&#xff0c;欢迎大家关注与提意见。 程序员每天的CV 与 板砖&#xff0c;也要知其所以然&#xff0c;本系列课程可以帮助初学者学习 SpringBooot 项目开发 与 SpringCloud 微服务系列项目开发 1 项目准备 SpringBoot 雪花算法生成商品订单…...

【论文阅读 WWW‘23】Zero-shot Clarifying Question Generation for Conversational Search

文章目录前言MotivationContributionsMethodFacet-constrained Question GenerationMultiform Question Prompting and RankingExperimentsDatasetResultAuto-metric evaluationHuman evaluationKnowledge前言 最近对一些之前的文章进行了重读&#xff0c;因此整理了之前的笔记…...

ouc 网络安全实验 格式化字符串漏洞

文章目录要求lab1lab2lab3lab4结语因为当时自己做实验的时候出现了很多疑问不会解决&#xff0c;在网上看到了一位大佬 王森ouc 的专栏文章解决了很多问题&#xff0c;也学到了很多知识和解决问题的方法&#xff0c;现在把我的实验解决方法也发上来&#xff0c;希望有不会的同…...

PMSM矢量控制笔记(1.1)——电机的机械结构与运行原理

前言&#xff1a;重新整理以前的知识和文章发现&#xff0c;仍然有许多地方没有学得明白&#xff0c;懵懵懂懂含含糊糊的地方多如牛毛&#xff0c;尤其是到了真正实际写东西或者做项目时&#xff0c;如果不是系统的学习了知识&#xff0c;很容易遇到问题就卡壳&#xff0c;也想…...

2022年全国职业院校技能大赛(中职组)网络安全竞赛试题——中间人攻击渗透测试解析(详细)

B-4任务四:中间人攻击渗透测试 *任务说明:仅能获取Server4的IP地址 *任务说明:仅能获取Server11的IP地址 1.通过上题渗透后得到控制权限的服务器场景Server4进行查看本地的arp缓存表的操作,并将该操作所使用的命令作为Flag值提交; 2.通过上题渗透后得到控制权限的服务…...

MySQL必知必会 | 安全、维护、性能

全球化和本地化 关于MySQL处理不同字符集和语言 字符集和校对顺序 数据库被用来存储和检索数据&#xff0c;不同的语言和字符集需要以不同的方式存储和检索&#xff0c;因此&#xff0c;MySQL需要适应不同的字符集&#xff0c;适应不同的排序方式 一些术语&#xff1a; 字符…...

MaaS Model as a Service 模型即服务

大模型是人工智能的发展趋势和未来。大模型是“大算力强算法” 结合的产物。目前&#xff0c;大模型生态已初具规模。大模型能够实现 AI 从“手工作坊”到“工厂模式”的转变&#xff0c;大模型通常是在大规模无标注 数据上进行训练&#xff0c;学习出一种特征和规则&#xf…...

【编程基础】027.C语言中函数在解题中的应用(三)

文章目录C语言中函数的应用1、自定义函数实现二维数组的转置2、自定义函数之整数处理3、自定义函数之数字后移4、自定义函数之字符串拷贝C语言中函数的应用 1、自定义函数实现二维数组的转置 题目描述 写一个函数&#xff0c;使给定的一个二维数组&#xff08;&#xff13;&a…...

echart图表之highcharts

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、HighCharts是什么&#xff1f;二、使用步骤1.引入库2.前端代码3.展现结果4.后台自动截图总结前言 提示&#xff1a;这里可以添加本文要记录的大概内容&…...

关于.Net和Java的看法——我见过最牛的一个小实习生经历

1、背景 笔者&#xff08;小方同学在学习&#xff09;是一个专科院校的一名普通学生&#xff0c;目前就职于某三线城市的WEB方面.Net开发实习生&#xff0c;在找实习期间和就业期间的一些看法&#xff0c;发表此文&#xff0c;纯个人想法&#xff0c;欢迎讨论&#xff0c;指正…...

基于springboot+vue的“智慧食堂”程序设计实现【毕业论文,源码】

系统登录界面系统架构开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven浏览器&#xf…...

学计算机选择什么编程语言好一些?

工资水平的话&#xff0c;目前人工智能、大数据和云计算等领域的工资相对较高&#xff0c;但是要求也高&#xff0c;学历&#xff0c;学习能力什么的。然后是后端开发&#xff0c;Python、Java、C等编程语言的工资普遍较高。 不用开发语言的优势 ​Java&#xff1a;Java是一种…...

持续集成 在 Linux 上搭建 Jenkins,自动构建接口测试

本篇把从 0 开始搭建 Jenkins 的过程分享给大家&#xff0c;希望对小伙伴们有所帮助。 文章目录 在 Linux 上安装 Jenkins在 Linux 上安装 Git在 Linux 上安装 Python在 Linux 上安装 Allure配置 Jenkinsjenkins 赋能 - 使用邮箱发送测试报告jenkins 赋能 - 优化测试报告内容…...

MySQL学习笔记(总结)

1. 数据库服务器操作命令 启动数据库&#xff1a;net start mysql80 &#xff08;注释&#xff1a;windows命令&#xff09; 停止数据库&#xff1a;net stop mysql80 &#xff08;注释&#xff1a;windows命令&#xff09; 重启数据库&#xff1a;systemctl restart mysql;…...

Android开发 Layout布局 ScrollView

1.LinearLayout 属性 orientation&#xff1a;内部组件排列方式&#xff0c;可选vertical、horizontal&#xff0c;默认horizontal layout_weight: 与平级组件长宽比例&#xff0c;需要将layout_width、layout_height其中一个设置为0dp&#xff0c;表明长或宽与平级组件的长…...

手撕数据结构与算法——树(三指针描述一棵树)

&#x1f3c6;作者主页&#xff1a;king&南星 &#x1f384;专栏链接&#xff1a;数据结构 &#x1f3c5;文章目录&#x1f331;树一、&#x1f332;概念与定义二、&#x1f333;定义与预备三、&#x1f334;创建结点函数四、&#x1f340;查找五、&#x1f341;插入六、&a…...

字节跳动Java后端开发实习面经

最近在和同学一起找实习&#xff0c;投了b站、字节和miHoYo的后端开发。b站二月底就投了&#xff0c;但现在也还没回复&#xff1b;miHoYo也还没回复&#xff0c;估计是只面向24届了&#xff1b;感谢字节&#xff0c;给了我面试的机会。字节真的处理好快&#xff0c;不到一周官…...

STM32实战项目-触摸按键

前言&#xff1a; 通过触摸按键控制LED灯以及继电器&#xff0c;具体实现功能如下&#xff1a; 1、触摸按键1单击与长按&#xff0c;控制LED1&#xff1b; 2、触摸按键2单击与长按&#xff0c;控制LED2; 3、触摸按键3单击与长按&#xff0c;控制LED3; 4、触摸按键4单击与长…...

安全行业-术语(万字)

肉鸡 所谓“肉鸡”说一种很形象的比喻&#xff0c;比喻那些可以任意被我们控制的电脑&#xff0c;对方可以是Windows系统&#xff0c;也可以说UNIX/linux系统&#xff0c;可以说普通的个人电脑&#xff0c;也可以是大型的服务器&#xff0c;我们可以像操作自己的电脑那样来操控…...

P1113 杂务(拓扑排序 or 记忆回溯)

题目描述 John的农场在给奶牛挤奶前有很多杂务要完成&#xff0c;每一项杂务都需要一定的时间来完成它。比如&#xff1a;他们要将奶牛集合起来&#xff0c;将他们赶进牛棚&#xff0c;为奶牛清洗乳房以及一些其它工作。尽早将所有杂务完成是必要的&#xff0c;因为这样才有更…...

Web3中文|政策影响下的新加坡Web3步伐喜忧参半

如果说“亚洲四小龙”是新加坡曾经的荣耀&#xff0c;那么当时代进入21世纪的第二个十年&#xff0c;用新加坡经济协会&#xff08;SEE&#xff09;副主席、新加坡新跃社科大学教授李国权的话来说&#xff0c;新加坡现在的“荣耀”是全球金融的主要“节点”或区块链行业发展的关…...

Java数据库高阶面试题,好程序员学员分享百度Java面试流程

小源下面分享一位好程序员的学员去百度Java面试流程&#xff01;百度技术一面(20分钟)1、自我介绍很流畅捡重点介绍2、数据结构算法好不好挺好的(其实心还是有点虚&#xff0c;不过最近刷了很多好程序员出的题感觉没问题&#xff01;)3、找到单链表的三等分点&#xff0c;如果单…...

栈和队列习题精选(持续更新中)

第一题&#xff08;括号匹配&#xff09;给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。有效字符串需满足&#xff1a;1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。…...

大数据开发 - Java入门6

目录标题do-while循环练习1&#xff1a;从键盘输入单词&#xff0c;讲输入的单词输出到控制台&#xff0c;输入是exit时退出循环练习2&#xff1a;键盘输入密码和确认密码&#xff0c;两次密码一致就退出循环打印注册成功&#xff0c;两次密码不一致就循环输入两次密码死循环fo…...

开源超级终端工具——WindTerm

1、下载和安装&#xff08;我的是win10&#xff0c;其他版本各位自选&#xff09; Releases kingToolbox/WindTerm GitHub 安装的话&#xff0c;相信大家不用我赘述了。 初始界面是这样的&#xff1a; 2、WindTerm使用 2.1 本地会话&#xff08;最下面那个框&#xff0c;发…...

asp.net网站连接mysql/软件培训机构排行榜

​...

discuz论坛门户网站模板/深度搜索

报错&#xff1a;由于Jenkins无法在其上启动从属代理,因此该节点处于脱机状态 This agent is offline because Jenkins failed to launch the agent process on 解决&#xff1a; 我的这个slave还连接了另外的一个master节点&#xff0c;所以在连接新的master节点的时候&#…...

iis .htaccess wordpress/自媒体营销的策略和方法

文章目录一、概述二、Hudi CLI三、Spark 与 Hudi 整合使用1&#xff09;Spark 测试2&#xff09;Spark 与 Hudi 整合使用1、启动spark-shell2、导入park及Hudi相关包3、定义变量4、模拟生成Trip乘车数据5、将模拟数据List转换为DataFrame数据集6、将数据写入到hudi四、Flink 与…...

网站建设 模板/推广优化方案

1. web虚拟主机的构建 虚拟Web主机指的是在同一台服务器中运行多个Web站点&#xff0c;其中每一个站点实际上并不独立占用整个服务器&#xff0c;因此被称为“虚拟”Web 主机。通过虚拟 Web 主机服务可以充分利用服务器的硬件资源&#xff0c;从而大大降低网站构建及运行成本。…...

wordpress 获取插件目录/北京网站优化方案

在Android中&#xff0c;要将一张图片显示在屏幕上&#xff0c;需要创建一个显示图片的对象&#xff0c;该对象就是ImageView。 1.ImageView常用属性 要对图片进行适屏裁剪操作&#xff0c;首先需要了解ImageView的常用属性。 ImageView的常用属性如图1所示。 图1 ImageView的常…...

做网站怎么开发客户/怎样建网站卖东西

PHP 数组排序(sort)数字索引数组排序&#xff1a;函数&#xff1a;sort(array, [sort type])说明&#xff1a;sort()函数按升序对指定数组(第一个参数)进行排序。sort函数第二参数作用为指定排序类型&#xff0c;是可选参数&#xff0c;可能的值为&#xff1a;SORT_REGULAR: 默…...