Docker命令
Docker命令
目录
镜像管理 docker iamge
ls | 显示所有本地镜像
# docker images [OPTIONS] [REPOSITORY[:TAG]
# docker image ls [OPTIONS] [REPOSITORY[:TAG]
-a, --all #显示所有镜像(包括中间映像层)
--format <sting>
使用例:
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest bc649bab30d1 4 days ago 187MB
pull | 拉取镜像
# docker pull [OPTIONS] NAME[:TAG|@DIGEST]
# docker image pull [OPTIONS] NAME[:TAG|@DIGEST]
-a, --all-tags
-q, --quiet
######
`NAME`为镜像(仓库)的名字,一般以项目名为镜像名,非官方或本地镜像的`NAME`带有详细的url路径
`TAG`为项目标签,正式的仓库一般以版本号为项目标签,若未标记则自动拉取仓库中最新的镜像(即TAG为latest)
`DEGEST`为镜像经sha256摘要计算得出的值,从网络获取的镜像会带有该值
使用例:
# docker image pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a378f10b3218: Pull complete
4dfff0708538: Pull complete
2135e49ace4b: Pull complete
c843f6b280ce: Pull complete
6f35ab6f1400: Pull complete
6c538b49fa4a: Pull complete
d57731fb9008: Pull complete
Digest: sha256:b4af4f8b6470febf45dc10f564551af682a802eda1743055a7dfc8332dffa595
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
push|推送镜像
# docker push [OPTIONS] NAME[:TAG]
# docker image push [OPTIONS] NAME[:TAG]
######
推送前,要将本地的镜像重新命名(使用`docker image tag`)为url路径
使用例:
# docker image push harbor.jw06.com/jw06/jw-ubuntu-apache:1.0
tag|镜像标签
# docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
# docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
######
为一个镜像重新命名,这样会为此镜像新增命名,而原有命名将保留且不会多出新的镜像实体
使用例:
# docker image tag jw-ubuntu-apache:1.0 harbor.jw06.com/jw06/jw-ubuntu-apache:1.0
history|显示构建历史
# docker history [OPTIONS] IMAGE
# docker image history [OPTIONS] IMAGE
######
显示该镜像用dockerfile构建的每一层的命令
使用例:
# docker image history
IMAGE CREATED CREATED BY SIZE COMMENT
bc649bab30d1 6 days ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
<missing> 6 days ago /bin/sh -c #(nop) STOPSIGNAL SIGQUIT 0B
<missing> 6 days ago /bin/sh -c #(nop) EXPOSE 80 0B
<missing> 6 days ago /bin/sh -c #(nop) ENTRYPOINT ["/docker-entr… 0B
<missing> 6 days ago /bin/sh -c #(nop) COPY file:9e3b2b63db9f8fc7… 4.62kB
<missing> 6 days ago /bin/sh -c #(nop) COPY file:57846632accc8975… 3.02kB
<missing> 6 days ago /bin/sh -c #(nop) COPY file:3b1b9915b7dd898a… 298B
<missing> 6 days ago /bin/sh -c #(nop) COPY file:caec368f5a54f70a… 2.12kB
<missing> 6 days ago /bin/sh -c #(nop) COPY file:01e75c6dd0ce317d… 1.62kB
<missing> 6 days ago /bin/sh -c set -x && groupadd --system -… 112MB
<missing> 6 days ago /bin/sh -c #(nop) ENV PKG_RELEASE=1~bookworm 0B
<missing> 6 days ago /bin/sh -c #(nop) ENV NJS_VERSION=0.8.0 0B
<missing> 6 days ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.25.2 0B
<missing> 6 days ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B
<missing> 6 days ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 6 days ago /bin/sh -c #(nop) ADD file:55ad846fa191e603f… 74.8MB
rm|删除镜像
# docker rmi [OPTIONS] IMAGE [IMAGE...]
# docker image rm [OPTIONS] IMAGE [IMAGE...]
--force #强制删除镜像,即使镜像正在被某容器占用
prune|删除未使用镜像
# docker image prune [OPTIONS]
-a, --all # 清除所有未正在使用的镜像,而不仅是悬挂(dangling)镜像,不要轻易使用该选项
--filter filter # 过滤器,提供过滤参数进行过滤
-f, --force # 不提示确认
inspect|查看详细信息
# docker image inspect [OPTIONS] IMAGE [IMAGE...]
-f, --format string Format output using a custom template:
'json': Print in JSON format
'TEMPLATE': Print output using the given Go template.
save|打包镜像
# docker save [OPTIONS] IMAGE [IMAGE...]
# docker image save [OPTIONS] IMAGE [IMAGE...]
-o, --output string #指定文件路径代替标准输出
######
默认用法是用输出重定向指定到文件
load|从归档文件加载镜像
# docker load [OPTIONS]
# docker image load [OPTIONS]
-i, --input string #从文件读取而非标准输入
-q, --quiet
######
默认用法是用输入重定向指定文件载入
import|将tar包导入生成镜像
# docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
# docker image import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
######
将tar包内容作为文件系统导入生成新的镜像,例如 docker export 导出的tar包
该镜像需要手动指定仓库路径和TAG,否则为dangling状态(无名镜像)
容器管理 docker container
ls|显示容器
# docker ps [OPTIONS]
# docker container ls [OPTIONS]
-a, --all #显示所有(包括已停止的容器)
--format <string> #用GO模板自定义列表
-n, --last=-1 #显示最后n个创建的容器(包括已停止的容器)
-l, --latest[=false] #显示最近创建的容器(包括已停止的容器)
-s, --size[=false] #显示文件大小合计
使用例:
[jw-docker]-(~)-# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ff6b654fb490 httpd "httpd-foreground" 3 seconds ago Up 2 seconds 80/tcp test_httpd
run|创建并启动容器
# docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
--cpus decimal #(核心数量)
-d, --detach
--dns=DNS_IP # 容器的DNS
--entrypoint string # Overwrite the default ENTRYPOINT of the image
-e, --env <key>=<value>
--env-file=file_PATH # 从文件获取变量
--expose=port # 暴露端口
-h, --hostname string #(容器的主机名)
-i, --interactive # 连接标准输入
--link=name_or_id # 链接一个容器,新容器会复制旧容器的变量,且两个容器可使用内部网络通信
--mac-address string #(aa:bb:cc:dd:ee:ff)
-m, --memory bytes # 内存限制大小
--mount mountstr
--name string #(容器名)
--network=type
--privileged # 为容器提供额外权限
-p, --publish list(<local_IP>:<container_IP>...) #手动映射IP
-P, --publish-all # 随机映射IP
--restart string # 指定重启策略
--rm # 容器退出后自动删除,匿名卷也会一同删除,慎用
-t, --tty # 分配tty伪终端
-v, --volume list
------------------------------------------------------
--mount [type={bind|volume|tmpfs},][src={<卷名>|<本地路径>},]dst={<挂载路径>}
-v [本地路径:]挂载路径[:[ro|rw][,z|Z][,[r]shared|[r]slave|[r]private][,delegated|cached|consistent]][,[r]shared|[r]slave|[r]private]
create|创建容器
# docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
# docker container create [OPTIONS] IMAGE [COMMAND] [ARG...]
######
选项基本与docker run相同
start|启动容器
# docker start [OPTIONS] CONTAINER [CONTAINER...]
# docker container start [OPTIONS] CONTAINER [CONTAINER...]
-a, --attach
stop|停止容器
# docker stop [OPTIONS] CONTAINER [CONTAINER...]
# docker container stop [OPTIONS] CONTAINER [CONTAINER...]
-t, --time int #延迟n秒,默认10
kill|强制停止容器
# docker kill [OPTIONS] CONTAINER [CONTAINER...]
# docker container kill [OPTIONS] CONTAINER [CONTAINER...]
-s, --signal string #发送信号,默认KILL
restrt|重启容器
# docker restart [OPTIONS] CONTAINER [CONTAINER...]
# docker container restart [OPTIONS] CONTAINER [CONTAINER...]
-t, --time int #延迟n秒,默认10
rm|删除容器
# docker rm [OPTIONS] CONTAINER [CONTAINER...]
# docker container rm [OPTIONS] CONTAINER [CONTAINER...]
-f, --force
-l, --link
-v, --volume # 同时删除关联的匿名卷
prune|删除停止的容器
# docker container prune [OPTIONS]
--filter filter #过滤器
-f, --force #无须确认
rename|重新命名容器
# docker rename CONTAINER NEW_NAME
# docker container rename CONTAINER NEW_NAME
port|显示映射端口
# docker port CONTAINER [PRIVATE_PORT[/PROTO]]
# docker container port CONTAINER [PRIVATE_PORT[/PROTO]]
inspect|显示详细信息
# docker container inspect [OPTIONS] CONTAINER [CONTAINER...]
-f, --format string
-s, --size
stats|显示容器实时占用
# docker stats [OPTIONS] [CONTAINER...]
# docker container stats [OPTIONS] [CONTAINER...]
-a, --all #默认仅显示运行种的容器
--format string
--no-stream #默认以流实时更新状态,指定该选项仅显示运行命令时刻的状态
logs|显示容器日志
# docker logs [OPTIONS] CONTAINER
# docker container logs [OPTIONS] CONTAINER
######
输出的其实是原本容器前台输出的内容
top|显示容器内进程
# docker top CONTAINER [ps OPTIONS]
# docker container top CONTAINER [ps OPTIONS]
cp|复制文件
# docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
# docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
# docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
# docker container cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
-a, --archive #档案模式,保留uid、gid等信息
-L, --follow-link #?
diff|比较与镜像的变更
# docker diff CONTAINER
# docker container diff CONTAINER
export|导出文件为tar包
# docker export [OPTIONS] CONTAINER
# docker container export [OPTIONS] CONTAINER
-o, --output string
######
默认用法是用输出重定向指定文件
将容器的文件系统导出为tar包,导出的tar包可用`docker image import`导入为镜像。
使用export导出的tar会丢失构建历史和元数据,只保留文件系统。因此重新导入后只能作为基础镜像使用
commit|提交容器为镜像
# docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
# docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a, --author string
-m, --messaage string
attach|连接容器
# docker attach [OPTIONS] CONTAINER
# docker container attach [OPTIONS] CONTAINER
--no-stdin #不连接标准输入(只是看着?)
exec|容器中执行命令
# docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
# docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]
-d, --detach #在后台执行命令
-e, --env list #设置环境变量
-i, --interactive
-t, --tty
-u, -user string
-w, --workdir string
构建镜像 Docker build
build|构建镜像
# docker build [OPTIONS] PATH | URL | -
--build-arg list Set build-time variables
-q, --quiet
-t, --tag list
Options:
--add-host strings Add a custom host-to-IP mapping (format: "host:ip")
--allow strings Allow extra privileged entitlement (e.g., "network.host", "security.insecure")
--annotation stringArray Add annotation to the image
--attest stringArray Attestation parameters (format: "type=sbom,generator=image")
--build-arg stringArray Set build-time variables
--build-context stringArray Additional build contexts (e.g., name=path)
--builder string Override the configured builder instance (default "default")
--cache-from stringArray External cache sources (e.g., "user/app:cache", "type=local,src=path/to/dir")
--cache-to stringArray Cache export destinations (e.g., "user/app:cache", "type=local,dest=path/to/dir")
--cgroup-parent string Set the parent cgroup for the "RUN" instructions during build
-f, --file string Name of the Dockerfile (default: "PATH/Dockerfile")
--iidfile string Write the image ID to a file
--label stringArray Set metadata for an image
--load Shorthand for "--output=type=docker"
--metadata-file string Write build result metadata to a file
--network string Set the networking mode for the "RUN" instructions during build (default "default")
--no-cache Do not use cache when building the image
--no-cache-filter stringArray Do not cache specified stages
-o, --output stringArray Output destination (format: "type=local,dest=path")
--platform stringArray Set target platform for build
--progress string Set type of progress output ("auto", "plain", "tty"). Use plain to show container output (default "auto")
--provenance string Shorthand for "--attest=type=provenance"
--pull Always attempt to pull all referenced images
--push Shorthand for "--output=type=registry"
-q, --quiet Suppress the build output and print image ID on success
--sbom string Shorthand for "--attest=type=sbom"
--secret stringArray Secret to expose to the build (format: "id=mysecret[,src=/local/secret]")
--shm-size bytes Shared memory size for build containers
--ssh stringArray SSH agent socket or keys to expose to the build (format: "default|<id>[=<socket>|<key>[,<key>]]")
-t, --tag stringArray Name and optionally a tag (format: "name:tag")
--target string Set the target build stage to build
--ulimit ulimit Ulimit options (default [])
prune|清除缓存
# docker builder prune [OPTIONS]
-a, --all
--filter filter
-f, --force
卷管理 docker volume
ls|列出所有卷
# docker volume ls [OPTIONS]
-q, --quiet
-f, --filter filter Provide filter values (e.g. "dangling=true")
--format string
create|创建卷
# docker volume create [OPTIONS] [VOLUME]
--label list # 设置卷的元数据
-d, --driver string # 指定卷驱动(默认 "local")
-o, --opt map # 设置驱动选项(默认map[])
inspect|显示卷详细信息
# docker volume inspect [OPTIONS] VOLUME [VOLUME...]
-f, --format string
rm|删除卷
# docker volume rm [OPTIONS] VOLUME [VOLUME...]
-f, --force # 强制删除,即使已被挂载
prune|删除未使用卷
# docker volume prune
-f, --force # 无需确认
网络管理 docker network
ls|列出网络
# docker network ls [OPTIONS]
-f, --filter filter # Provide filter values (e.g. "driver=bridge")
--format string # Format output using a custom template:
--no-trunc # 显示完整的 network ID
-q, --quiet # 仅显示 network IDs
create|创建网络
# docker network create [OPTIONS]
--attachable Enable manual container attachment
--aux-address map Auxiliary IPv4 or IPv6 addresses used by Network driver (default map[])
--config-from string The network from which to copy the configuration
--config-only Create a configuration only network
-d, --driver string #网络驱动器,即网络类型,默认bridge
--gateway strings #IPv4 or IPv6 Gateway for the master subnet
--ingress Create swarm routing-mesh network
--internal Restrict external access to the network
--ip-range strings Allocate container ip from a sub-range
--ipam-driver string #IP Address Management 驱动 (默认 "default")
--ipam-opt map #设置ipam驱动的特定选项(default map[])
--ipv6 Enable IPv6 networking
--label list Set metadata on a network
-o, --opt map Set driver specific options (default map[])
--scope string Control the network's scope
--subnet strings #CIDR格式表示子网
inspect|显示详细信息
docker network inspect [OPTIONS] NETWORK [NETWORK...]
-f, --format string
-v, --verbose
rm|删除一个或多个网络
docker network rm NETWORK [NETWORK...]
-f, --force
prune|删除所有未使用网络
docker network prune [OPTIONS]
--filter filter Provide filter values (e.g. "until=<timestamp>")
-f, --force Do not prompt for confirmation
connect|将容器连接到网络
docker network connect [OPTIONS] NETWORK CONTAINER
--alias strings Add network-scoped alias for the container
--driver-opt strings driver options for the network
--ip string IPv4 address (e.g., "172.30.100.104")
--ip6 string IPv6 address (e.g., "2001:db8::33")
--link list Add link to another container
--link-local-ip strings Add a link-local address for the container
disconnect|将容器断开网络
docker network connect [OPTIONS] NETWORK CONTAINER
--alias strings Add network-scoped alias for the container
--driver-opt strings driver options for the network
--ip string IPv4 address (e.g., "172.30.100.104")
--ip6 string IPv6 address (e.g., "2001:db8::33")
--link list Add link to another container
--link-local-ip strings Add a link-local address for the container

浙公网安备 33010602011771号