docker命令行的使用

docker命令行的使用

docker命令行是docker用户和docker守护进程交互的主要途径。普通用户主要使用命令行接口来管理配置、管理和操作docker


docker命令行接口类型

docker是一个庞大而复杂的平台,其命令行接口可分为以下几种类型:

  • 引擎命令行接口(Engine CLI):这是docker最主要的命令行,包括所有的docker命令和dockerd命令,其中docker命令是最常用的。
  • 容器编排命令行接口(Compose CLI):这是docker compose工具所提供的,用来让用户构建并运行多容器的应用程序。
  • 机器命令行接口(Machine CLI):这是docker machine工具所提供的,用于配置和管理远程docker主机。
  • DTR命令行接口:部署和管理docker可信注册中心(Trusted Registry)。
  • UCP命令行接口:部署和管理通用控制面板(Universal Control Plane)。

docker命令列表

通过不带任何选项和参数的docker命令可以得到一份完整的命令列表

[root@redhat01 ~]# docker

Usage:  docker [OPTIONS] COMMAND			//用法

A self-sufficient runtime for containers

Common Commands:				//常用命令
  run         Create and run a new container from an image			//从镜像创建并运行一个新容器
  exec        Execute a command in a running container			//在运行中的容器中执行命令
  ps          List containers								//列出容器
  build       Build an image from a Dockerfile			//从Dockerfile构建镜像
  pull        Download an image from a registry			//从注册表下载映像
  push        Upload an image to a registry				//上传图像到注册表
  images      List images					//列出镜像
  login       Log in to a registry			//登录注册表
  logout      Log out from a registry		//从注册中心注销
  search      Search Docker Hub for images		//搜索Docker Hub查找镜像
  version     Show the Docker version information		//显示Docker版本信息
  info        Display system-wide information			//显示系统范围的信息

Management Commands:					//管理命令
  builder     Manage builds				//管理构建
  buildx*     Docker Buildx				
  compose*    Docker Compose
  container   Manage containers			//管理容器
  context     Manage contexts			//管理上下文
  image       Manage images				//管理镜像
  manifest    Manage Docker image manifests and manifest lists			//管理Docker镜像清单和清单列表
  network     Manage networks			//管理网络
  plugin      Manage plugins			//管理插件
  system      Manage Docker				//管理docker本身
  trust       Manage trust on Docker images		//管理docker镜像上的信任
  volume      Manage volumes			//管理卷

Swarm Commands:
  swarm       Manage Swarm

Commands:							//命令
  attach      Attach local standard input, output, and error streams to a running container		//附加到正在运行的容器上的本地标准输入、输出和错误流
  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					//创建新的容器
  diff        Inspect changes to files or directories on a container's filesystem			//查看容器的文件系统上的文件或目录的变化
  events      Get real time events from the server			//获取来自服务器的实时事件
  export      Export a container's filesystem as a tar archive			//将容器的文件系统导出为Tar归档文件
  history     Show the history of an image									//显示镜像的历史
  import      Import the contents from a tarball to create a filesystem image			//从tarball中导入内容以创建文件系统映像
  inspect     Return low-level information on Docker objects			//返回Docker对象的底层信息
  kill        Kill one or more running containers					//杀死一个或多个正在运行的容器
  load        Load an image from a tar archive or STDIN					//从tar存档文件或STDIN加载图像
  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		//列出端口映射或容器的特定映射
  rename      Rename a container			//重命名容器
  restart     Restart one or more containers				//重新启动一个或多个容器
  rm          Remove one or more containers					//移除一个或多个容器
  rmi         Remove one or more images						//删除一个或多个镜像
  save        Save one or more images to a tar archive (streamed to STDOUT by default)			//将一个或多个图像保存到tar存档(默认情况下流式传输到STDOUT)
  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			//创建一个指向SOURCE_IMAGE的标签TARGET_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				//更新一个或多个容器的配置
  wait        Block until one or more containers stop, then print their exit codes			//阻塞直到一个或多个容器停止,然后打印它们的退出代码

Global 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 env)
Var和默认上下文设置为“docker context use”)
  -D, --debug              Enable debug mode		//启用调用模式
  -H, --host list          Daemon socket to connect to		//要连接的守护进程套接字
  -l, --log-level string   Set the logging level ("debug", "info", "warn", "error", "fatal") (default "info")		//设置日志级别("debug", "info", "warn", "error", "fatal")(默认为"info")
      --tls                Use TLS; implied by --tlsverify			//使用TLS;由——tlsverify暗示
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")		//仅由该CA签署的信任证书(默认为“/root/.docker/ CA .pem”)
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")			//TLS证书文件路径(默认为“/root/.docker/cert.pem”)
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")		//TLS密钥文件路径(默认为“/root/.docker/key.pem”)
      --tlsverify          Use TLS and verify the remote			//使用TLS并验证远程
  -v, --version            Print version information and quit		//打印版本信息并退出

Run 'docker COMMAND --help' for more information on a command.

For more help on how to use Docker, head to https://docs.docker.com/go/guides/

该命令最后提示可以运行docker COMMAND --help命令来查看某条具体子命令的帮助信息。例如,查看tag子命令的帮助信息:

[root@redhat01 ~]# docker tag --help

Usage:  docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

Aliases:
  docker image tag, docker tag
用法:docker标签SOURCE_IMAGE[: tag] TARGET_IMAGE[: tag]

创建一个指向SOURCE_IMAGE的标签TARGET_IMAGE

别名:
Docker图像标签,Docker标签

考虑到功能和应用场景,可将这些大致分为以下4个类别。

  • 系统信息:如info、version
  • 系统运维:如attach、build、commit、run等
  • 日志信息:如events、histoty、logs等
  • Docker注册:如login、pull、push、search等

docker命令的基本用法

docker命令采用的是Linux命令语法格式,可以使用选项和参数。docker官方文档中有的地方将不带参数的选项称为flag(标志),为了便于表述。

docker [OPTIONS] COMMAND

其中OPTIONS表示选项,COMMAND是docker命令的子命令。

### Docker 命令行使用指南及常见问题解决方案 以下是关于 Docker 命令行使用方法以及一些常见问题的解决方案,涵盖从基础命令到高级操作。 #### 1. Docker 基础命令 以下是一些常用的 Docker 命令: - **列出所有容器**(包括停止的容器): ```bash docker ps -a ``` - **启动一个容器**: ```bash docker start <容器ID或名称> ``` - **停止一个运行中的容器**: ```bash docker stop <容器ID或名称> ``` - **删除一个容器**: ```bash docker rm <容器ID或名称> ``` - **运行一个新的容器**(以交互模式运行 Ubuntu 容器为例)[^3]: ```bash docker run -it ubuntu /bin/bash ``` - **查看所有镜像**: ```bash docker images ``` - **删除一个镜像**: ```bash docker rmi <镜像ID> ``` #### 2. Docker 容器的端口映射与网络配置 为了使容器能够访问外部网络或让外部访问容器,可以使用 `-p` 参数进行端口映射。例如,将主机的 8080 端口映射到容器的 80 端口: ```bash docker run -d -p 8080:80 nginx ``` 若需要检查端口映射情况,可以使用以下命令: ```bash docker port <容器ID或名称> ``` #### 3. Docker 容器的自动重启配置 为了确保容器在系统重启后能够自动启动,可以设置容器的自动重启策略[^3]: ```bash docker update <容器ID或名称> --restart=always ``` #### 4. Docker GPU 支持 如果需要在容器中使用 GPU 资源,可以使用 `nvidia-container-runtime` 运行时。例如,运行一个支持 CUDA 的容器并执行 `nvidia-smi` 命令: ```bash docker run --runtime=nvidia -it --rm nvidia/cuda:11.0-base nvidia-smi ``` #### 5. Docker 日志查看 查看容器的日志输出可以帮助诊断问题: ```bash docker logs <容器ID或名称> ``` #### 6. 常见问题及解决方案 - **问题:Docker 容器无法启动** - 检查容器日志以获取更多信息: ```bash docker logs <容器ID或名称> ``` - 确保镜像正确拉取且没有依赖缺失。 - **问题:端口冲突** - 如果遇到端口冲突错误,可以更改端口映射或释放占用端口。例如,使用以下命令查找占用端口的进程: ```bash netstat -nlpt | grep <端口号> ``` - **问题:容器无法访问宿主机网络** - 确保容器的网络模式配置正确。例如,使用 `--network=host` 参数可以让容器共享宿主机的网络堆栈: ```bash docker run --network=host <镜像名> ``` #### 7. Docker Arthas 实战 对于需要调试 Java 应用的场景,可以使用 Arthas 工具[^5]。例如,在容器中安装并启动 Arthas: ```bash docker exec -it <容器ID或名称> bash apt-get update && apt-get install -y wget wget https://alibaba.github.io/arthas/bin/arthas-boot.jar java -jar arthas-boot.jar ``` ### 示例代码 以下是一个简单的 Python 应用打包为 Docker 镜像的示例: ```dockerfile # 使用官方 Python 基础镜像 FROM python:3.9-slim # 设置工作目录 WORKDIR /app # 复制当前目录下的文件到容器的工作目录 COPY . . # 安装依赖 RUN pip install -r requirements.txt # 暴露端口 EXPOSE 5000 # 启动应用 CMD ["python", "app.py"] ``` 构建镜像并运行容器: ```bash docker build -t my-python-app . docker run -d -p 5000:5000 my-python-app ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值