Docker 命令详解

Docker 命令详解

Docker 是一种流行的容器化技术,它允许开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中,从而实现快速部署和一致性的运行环境。本文档将详细介绍 Docker 的基础知识,并通过一系列实用的命令来帮助你更好地管理 Docker 环境。

一、Docker 简介

Docker 包含三个核心组件:

  • Docker 客户端 - 用户与 Docker 交互的界面。
  • Docker 守护进程 - 运行在主机上,处理客户端发送的指令。
  • Docker 镜像 - 包含了运行应用程序所需的所有文件和依赖。

Docker 的优点

  • 一致性:无论在哪个环境中运行,应用的行为都是一致的。
  • 资源高效:容器共享主机的操作系统内核,占用资源较少。
  • 隔离性:每个容器都有自己的文件系统和运行空间,相互之间不会干扰。

二、安装 Docker

确保你的系统已经安装了 Docker。如果还没有安装,可以访问 Docker 官方网站 获取安装指南。

三、Docker 基础命令

查看版本信息

docker --version

搜索镜像

docker search <image_name>

下载镜像

docker pull <image_name>

列出本地镜像

docker images

删除镜像

docker rmi <image_id>

启动容器

docker run <image_name> [command]

查看运行中的容器

docker ps

查看所有容器(包括停止的)

docker ps -a

停止容器

docker stop <container_id>

删除容器

docker rm <container_id>

进入容器

docker exec -it <container_id> /bin/bash

查看容器日志

docker logs <container_id>

查看容器详细信息

docker inspect <container_id>

四、进阶命令

构建镜像

docker build -t <image_name> .

打包镜像

docker save -o <filename>.tar <image_name>

加载镜像

docker load -i <filename>.tar

镜像标签

docker tag <source_image> <repository>:<tag>

查看系统信息

docker system info

管理网络

创建网络
docker network create <network_name>
连接网络
docker network connect <network_name> <container_id>
删除网络
docker network rm <network_name>

管理卷

创建卷
docker volume create <volume_name>
列出所有卷
docker volume ls
显示卷的详细信息
docker volume inspect <volume_name>
删除卷
docker volume rm <volume_name>

五、更多命令

清理资源

docker system prune

显示磁盘使用情况

docker system df

重启容器

docker restart <container_id>

立即停止容器

docker kill <container_id>

重命名容器

docker rename <container_id> <new_name>

显示容器内的进程

docker top <container_id>

显示容器映射的端口

docker port <container_id> <port>

显示容器文件系统的更改

docker diff <container_id>

将容器状态提交为新镜像

docker commit <container_id> <new_image_name>

在容器中执行命令

docker exec <container_id> <command>

检查容器的健康状态

docker container inspect --format '{{.State.Health.Status}}' <container_id>

设置容器的健康检查

docker run -d --health-cmd="curl -f http://localhost/ || exit 1" --health-interval=30s --health-timeout=30s --health-retries=3 <image_name>

创建容器时指定网络模式

docker run --net=<network_mode> <image_name>

使用环境变量

docker run -e KEY=VALUE <image_name>

使用自定义的 Dockerfile 构建镜像

docker build -t <image_name> -f <Dockerfile_path> .

设置容器的资源限制

docker run --memory=256M --cpu-period=100000 --cpu-quota=50000 <image_name>

设置容器的网络接口

docker run --ip=<ip_address> --net=host <image_name>

挂载宿主机目录到容器

docker run -v <host_dir>:<container_dir> <image_name>

挂载匿名卷到容器

docker run -v <container_dir> <image_name>

挂载只读卷到容器

docker run -v <host_dir>:<container_dir>:ro <image_name>

设置容器的启动命令

docker run --entrypoint <command> <image_name>

设置容器的默认命令

docker run --entrypoint <command> <image_name> <args>

设置容器的默认工作目录

docker run -w <working_dir> <image_name>

从容器复制文件到宿主机

docker cp <container_id>:<src_path> <dest_path>

从宿主机复制文件到容器

docker cp <src_path> <container_id>:<dest_path>

设置容器的 DNS 服务器

docker run --dns=<dns_ip> <image_name>

设置容器的域名

docker run --domainname=<domain_name> <image_name>

设置容器的 hostname

docker run --hostname <hostname> <image_name>

设置容器的 IP 地址

docker run --ip <ip_address> <image_name>

设置容器的 MAC 地址

docker run --mac-address <mac_address> <image_name>

设置容器的端口映射

docker run -p <host_port>:<container_port> <image_name>

设置容器的端口映射(发布所有端口)

docker run -P <image_name>

设置容器的标签

docker run --label <key>=<value> <image_name>

设置容器的超时时间

docker run --stop-timeout <timeout_seconds> <image_name>

设置容器的环境变量文件

docker run --env-file <env_file_path> <image_name>

设置容器的用户

docker run -u <user> <image_name>

设置容器的 UID 和 GID

docker run -u <uid>:<gid> <image_name>

设置容器的 SELinux 标签

docker run --security-opt label=<selinux_label> <image_name>

设置容器的 cgroups

docker run --cgroup-parent=<cgroup_parent> <image_name>

设置容器的 cgroups 规则

docker run --cgroupns=<mode> <image_name>

设置容器的 OOM 杀死动作

docker run --oom-kill-disable <image_name>

设置容器的 OOM 分配率

docker run --oom-score-adj=<score_adj> <image_name>

设置容器的内存交换限制

docker run --memory-swap <image_name>

设置容器的内存交换比例

docker run --memory-swappiness <image_name>

设置容器的 CPU 份额

docker run --cpu-shares <image_name>

设置容器的 CPU 亲和性

docker run --cpuset-cpus <image_name>

设置容器的 CPU 亲和性(线程)

docker run --cpuset-mems <image_name>

设置容器的 CPU 实时周期

docker run --cpu-period <image_name>

设置容器的 CPU 实时配额

docker run --cpu-quota <image_name>

设置容器的 CPU 实时权重

docker run --cpu-rt-period <image_name>

设置容器的 CPU 实时运行时间

docker run --cpu-rt-runtime <image_name>

设置容器的 CPU 实时权重

docker run --cpu-rt-weight <image_name>
docker run --device-read-bps <image_name>
docker run --device-read-iops <image_name>
docker run --device-write-bps <image_name>
docker run --device-write-iops <image_name>
docker run --blkio-weight <image_name>
docker run --kernel-memory <image_name>
docker run --kernel-memory-tcm <image_name>
docker run --oom-score-adj <image_name>
docker run --init <image_name>
docker run --detach-keys <image_name>
docker run --disable-content-trust <image_name>
docker run --interactive <image_name>
docker run --isolation <image_name>
docker run --log-driver <image_name>
docker run --log-opt <image_name>
docker run --name <container_name> <image_name>
docker run --pid <image_name>
docker run --read-only <image_name>
docker run --rm <image_name>
docker run --sig-proxy <image_name>
docker run --storage-opt <image_name>
docker run --sysctl <image_name>
docker run --tmpfs <image_name>
docker run --ulimit <image_name>
docker run --userns <image_name>
docker run --uts <image_name>
docker run --workdir <image_name>

六、示例

假设我们要从官方仓库下载一个最新的 Ubuntu 镜像,并启动一个容器,然后进入该容器的 shell:

  1. 下载 Ubuntu 镜像:

    docker pull ubuntu:latest
    
  2. 启动容器并进入 shell:

    docker run -it ubuntu:latest /bin/bash
    

七、总结

本文介绍了 Docker 的基本概念和常用命令。通过这些命令,你可以开始构建、运行和管理 Docker 容器。随着对 Docker 的深入了解,你还可以探索更多的高级功能和技术。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KYGALYX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值