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
posted @ 2025-03-09 17:52  好坏会红平个  阅读(6)  评论(0)    收藏  举报