docker命令详解
1、docker --help详解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | [root@localhost test]# docker --help Usage: docker [OPTIONS] COMMAND # docker [可选项] 命令 A self-sufficient runtime for containers # 容器的自足运行时 Options: --config string Location of client config files ( default "/root/.docker" ) # 客户端配置文件的位置 -c, --context string Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker context use") # 用于连接到守护进程的上下文的名称(覆盖DOCKER_HOST的环境变量,并且用“ docker context use”设置默认上下文) -D, --debug Enable debug mode # 开启debug模式 -H, --host list Daemon socket(s) to connect to # 要连接的守护进程socket -l, --log-level string Set the logging level ( "debug" | "info" | "warn" | "error" | "fatal" ) ( default "info" ) # 设置日志级别 --tls Use TLS; implied by --tlsverify # 使用TLS --tlscacert string Trust certs signed only by this CA ( default "/root/.docker/ca.pem" ) # 仅信任该CA签名的证书 --tlscert string Path to TLS certificate file ( default "/root/.docker/cert.pem" ) # TLS证书文件的路径 --tlskey string Path to TLS key file ( default "/root/.docker/key.pem" ) # TLS密钥文件的路径 --tlsverify Use TLS and verify the remote # 使用TLS并验证远程 -v, --version Print version information and quit # 打印版本信息并退出 Management Commands: builder Manage builds config Manage Docker configs container Manage containers context Manage contexts image Manage images manifest Manage Docker image manifests and manifest lists network Manage networks node Manage Swarm nodes # 管理集群节点 plugin Manage plugins secret Manage Docker secrets service Manage services stack Manage Docker stacks swarm Manage Swarm system Manage Docker trust Manage trust on Docker images # 管理对Docker镜像的新人 volume Manage volumes # 管理卷 Commands: attach Attach local standard input, output, and error streams to a running container # 当前 shell 下 attach 连接指定运行镜像 build Build an image from a Dockerfile # 通过 Dokcerfile 定制镜像 commit Create a new image from a container's changes # 提交当前容器为新的镜像 cp Copy files/folders between a container and the local filesystem # 从容器中拷贝指定文件或目录到宿主机中 create Create a new container # 创建一个新的容器,同 run 但是不启动容器 diff Inspect changes to files or directories on a container's filesystem # 查看 Docker 容器变化 events Get real time events from the server # 从 Docker 服务获取容器实时时间 exec Run a command in a running container # 在已存在的容器上运行命令 export Export a container's filesystem as a tar archive # 到处容器的内容流作为一个 tar 归档文件(对应 import) history Show the history of an image # 显示镜像形成历史 images List images # 列出系统当前镜像 import Import the contents from a tarball to create a filesystem image # 从 tar 包中的内容创建一个新的文件系统映像(对应 export) info Display system-wide information # 显示系统相关信息 inspect Return low-level information on Docker objects # 查看容器详细信息 kill Kill one or more running containers # kill 指定 docker 容器 load Load an image from a tar archive or STDIN # 从一个 tar 包中加载镜像(对应 save) login Log in to a Docker registry # 注册或登录一个 docker 源服务器 logout Log out from a Docker registry # 从当前 Docker registry 退出 logs Fetch the logs of a container # 输出当前容器日志信息 pause Pause all processes within one or more containers # 暂停容器 port List port mappings or a specific mapping for the container # 查看映射端口对应的容器内部源端口 ps List containers # 列出容器列表 pull Pull an image or a repository from a registry # 从 docker 镜像源服务器拉去指定镜像或者库镜像 push Push an image or a repository to a registry # 推送指定镜像或者库镜像至 docker 源服务器 rename Rename a container # 重命名一个容器 restart Restart one or more containers # 重启一个或多个容器 rm Remove one or more containers # 移除一个或多个容器 rmi Remove one or more images # 移除一个或多个镜像(无容器使用该镜像才可移除,否则需删除相关容器才可继续或 -f 强制执行) run Run a command in a new container # 创建一个新的容器并运行一个命令 save Save one or more images to a tar archive (streamed to STDOUT by default ) # 保存一个镜像为一个 tar 包(对应load) search Search the Docker Hub for images # 在 docker hub 中搜索镜像 start Start one or more stopped containers # 启动容器 stats Display a live stream of container(s) resource usage statistics # 显示实时的容器资源使用情况统计流 stop Stop one or more running containers # 停止容器 tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE # 给源中的镜像打标签 top Display the running processes of a container # 查看容器中运行的进程信息 unpause Unpause all processes within one or more containers # 取消暂停容器 update Update configuration of one or more containers # 为容器更新配置 version Show the Docker version information # 查看 docker 版本号 wait Block until one or more containers stop, then print their exit codes # 阻塞直到一个或多个容器停止,然后打印其退出代码,即截取容器停止时的退出状态值 Run 'docker COMMAND --help' for more information on a command. |
2、docker常用命令
运行一个容器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | docker run -it -p 8088:8088 -p 8089:8089 -p 8090:9090 - v /root/soft/docker : /root/soft/docker - v /root/soft/dockertt : /root/soft/dockertt loen /rc /bin/bash 命令的格式: Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -a, --attach=[] 登录容器(以docker run -d启动的容器) -c, --cpu-shares=0 设置容器CPU权重,在CPU共享场景使用 --cap-add=[] 添加权限,权限清单详见:http: //linux .die.net /man/7/capabilities --cap-drop=[] 删除权限,权限清单详见:http: //linux .die.net /man/7/capabilities --cidfile= "" 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法 --cpuset= "" 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU -d, --detach= false 指定容器运行于前台还是后台 --device=[] 添加主机设备给容器,相当于设备直通 --dns=[] 指定容器的dns服务器 --dns-search=[] 指定容器的dns搜索域名,写入到容器的 /etc/resolv .conf文件 -e, -- env =[] 指定环境变量,容器中可以使用该环境变量 --entrypoint= "" 覆盖image的入口点 -- env - file =[] 指定环境变量文件,文件格式为每行一个环境变量 --expose=[] 指定容器暴露的端口,即修改镜像的暴露端口 -h, -- hostname = "" 指定容器的主机名 -i, --interactive= false 打开STDIN,用于控制台交互 --link=[] 指定容器间的关联,使用其他容器的IP、 env 等信息 --lxc-conf=[] 指定容器的配置文件,只有在指定-- exec -driver=lxc时使用 -m, --memory= "" 指定容器的内存上限 --name= "" 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字 --net= "bridge" 容器网络设置,待详述 -P, --publish-all= false 指定容器暴露的端口,待详述 -p, --publish=[] 指定容器暴露的端口,待详述 --privileged= false 指定容器是否为特权容器,特权容器拥有所有的capabilities --restart= "" 指定容器停止后的重启策略,待详述 -- rm = false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器) --sig-proxy= true 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理 -t, -- tty = false 分配 tty 设备,该可以支持终端登录 -u, --user= "" 指定容器的用户 - v , --volume=[] 给容器挂载存储卷,挂载到容器的某个目录 --volumes-from=[] 给容器挂载其他容器上的卷,挂载到容器的某个目录 -w, --workdir= "" 指定容器的工作目录 >>>>>> 详细讲解 端口暴露 -P参数:docker自动映射暴露端口; docker run -d -P training /webapp <span style= "color:#009900;" > //docker 自动在host上打开49000到49900的端口,映射到容器(由镜像指定,或者--expose参数指定)的暴露端口;< /span > -p参数:指定端口或IP进行映射; docker run -d -p 5000:80 training /webapp <span style= "color:#009900;" > //host 上5000号端口,映射到容器暴露的80端口;< /span > docker run -d -p 127.0.0.1:5000:80 training /webapp <span style= "color:#009900;" > //host 上127.0.0.1:5000号端口,映射到容器暴露的80端口;< /span > docker run -d -p 127.0.0.1::5000 training /webapp <span style= "color:#009900;" > //host 上127.0.0.1:随机端口,映射到容器暴露的80端口;< /span > docker run -d -p 127.0.0.1:5000:5000 /udp training /webapp <span style= "color:#009900;" > // 绑定udp端口;< /span > 网络配置 --net=bridge: <span style= "color:#009900;" > // 使用docker daemon指定的网桥< /span > --net=host: <span style= "color:#009900;" > // 容器使用主机的网络< /span > --net=container:NAME_or_ID:<span style= "color:#009900;" > // 使用其他容器的网路,共享IP和PORT等网络资源< /span > --net=none: <span style= "color:#009900;" > // 容器使用自己的网络(类似--net=bridge),但是不进行配置< /span > |
关闭运行中的容器
1 | docker stop 容器ID |
启动一个已经停止的容器
1 | docker start 容器ID |
重启一个容器
1 | docker restart 容器ID |
进入一个运行中的容器
1 | docker attach 容器ID |
显示全部容器
1 | docker ps -a |
显示当前运行的容器
1 | docker ps |
查看本地镜像
1 | docker images |
删除所有镜像
1 | docker rmi $(docker images | grep - v RESPOSITORY | awk '{print $3}' ) |
构建容器
1 2 3 4 | docker build -t 镜像名称 . # 后面的. 指的是当前文件夹 (其实是Dockerfile存放的文件夹) # 建立映像文件。–rm 选项是告诉Docker,在构建完成后删除临时的Container,Dockerfile的每一行指令都会创建一个临时的Container,一般这些临时生成的Container是不需要的 docker build -- rm = true -t loen /lamp . |
删除容器
1 | docker rm 容器ID |
删除所有容器
1 | docker rm $(docker ps -a) |
查看历史
1 | docker history 镜像ID |
导出容器
1 | docker export 容器ID > xxx. tar |
把 mynewimage 镜像保存成 tar 文件
1 | docker save myimage | bzip2 -9 -c> /home/save . tar .bz2 |
加载 myimage 镜像
1 | bzip2 -d -c < /home/save . tar .bz2 | docker load |
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术