Docker 命令大全.

2,670 阅读5分钟

🧑‍🏫Docker 简单命令.

最近在看<<云原生架构技术、服务与实践>>,看到了Docker技术,所以将Docker常用的命令记录下来.

对于Docker的工作原理、网络以及分层等稍后梳理之后会进行详细分析.

🏷️一、 Docker 基本命令.

下面是Docker的基本命令,除了Docker的基本命令还有Docker隔离相关的命令.

1.1 基本命令.

命令说明
docker info检查当前容器的安装情况(包括镜像数、容器书、多少个物理机节点)
docker version查看当前安装的Docker的版本.

1.2 Docker容器生命周期相关命令.

命令说明
docker run -d -p x:x --name xxx id.用某一个镜像在后台运行一个容器
docker create --name xxx nginx:latest创建一个新的容器,但是不启动
docker start\stop\restart启动\停止\停止一个容器.
docker kill 容器id.终止一个运行中的容器,kill 不管是否同意,直接强制终止
docker rm -vf 容器id删除一个或者多个容器
docker exec -it id bash进入容器内部.

1.3 Docker容器相关命令.

命令说明
docker ps -a | grep xxxx显示某一个组件XXX的容器列表.
docker inspect id.获取容器或者镜像的元数据.
docker top id查看容器中运行的进程信息
docker stats id实时显示容器资源的使用统计
docker events从服务器获取实时事件
docker logs id查看容器内的标准日志输出
docker port id列出指定容器的端口映射
docker cp ./t.txt id:/root/将宿主机当前目录下的t.txt复制到id容器中的root目录下
docker diff id列出该容器自从创建来,容器内部文件的变化.
docker commit -m "comment" -a "authon" 容器id repository:tag将容器转换为一个镜像
docker update --memory=16G修改容器运行中的配置,即使生效无需配置.

1.4 Docker 本地镜像管理命令.

命令说明
docker images列出本地宿主机上的所有镜像
docker history id查看指定镜像的分层结构以及创建历史
docker image inspect id查看镜像的元数据信息
docker rmi id根据镜像id删除镜像
docker tag image-name:tag给指定镜像增加tag.
docekr build -t tag .根据当前目目录下的Dockerfile来构建一个标签为tag的镜像.
docker export -o xxx.tar id将镜像打包成文件
docker import xxx.tar name从归档文件中创建镜像.
docker save -o xxx.tat id将指定镜像保存为归档文件
docker load --input xxx.tar用于将docker svae 生成的归档文件还原成镜像.

1.5 Docker 镜像仓库命令.

命令说明
docker loging -u xxx -p xxx登录一个docker镜像仓库,如果未指定镜像仓库地址,则默认为Docker Hub镜像仓库
docker logout退出登录的镜像仓库
docker pull nginx从默认的Docker hub 上拉取nginx的镜像.
docker push image_name将本地镜像上传到镜像仓库,前提是Docker必须进行Login.
docker search xxx从默认的Docker Hub中搜索指定的镜像.

1.6 下面这张图显示了完整的Docker命令关系.

image-20210914200645229

🏷️ 二、Docker高级命令.

2.1 与容器运行模式相关的命令.

就是 docker run 命令附带的参数详解.

参数说明
-a,--attach=[]是否绑定到标准输入、输出、和错误.
-d,--detach=true|false是否在后台运行,默认为false.
--detach-keys=""从attach模式退出的快捷键,默认是Ctrl+P
--entrypoint=""镜像存在入口命令时覆盖新的命令.
--expost=[]暴露出来的镜像端口
--group-add=[]运行容器的用户组
-i保持标准输入打开
--ipc=""容器IP命名空间.
--isolation="default"容器使用的隔离机制.
--log-driver=""指定容器的日志驱动类型.
--log-opy=[]传递给日志驱动的选项.
--net="bridge"指定容器的网络模式.
--net-alias=[]容器在网络中的别名
--volume=[=[HOST-DIR]:]CONTAINER-DIR:[:OPTIONS]]挂在宿主机上的数据卷到容器内
--volume-driver=""挂在数据卷的驱动类型.
--volumes-from=[]从其他容器挂在数据卷

2.2 与容器环境配置相关的命令.

参数说明
--add-host=[]在容器内添加一个宿主机名到IP地址的映射关系,修改HOST文件
--device=[]映射物理机上的设备到容器
--dns-search=[]指定容器DNS搜索域.
--dns-opt=[]自定义的DNS选项
--dns=[]自定义的DNS服务器
-e,-env=[]指定容器内的环境变量.
-env-file=[]从文件中读取环境变量到容器内
-h,--hostname=""指定容器中的主机名.
--ip=""指定容器内ip4的地址
--ip6=""指定容器内ip6的地址
--link=[id]连接到其他容器,不需要其他容器暴露端口.
--name==""指定容器的别名

2.3 Docker限制CPU使用.

参数说明
--cpu-shares=0允许容器使用CPU资源的相对权重,默认一个容器能用满一个CPU,用于设置多个容器竞争CPU时,各个容器相对能分配到CPU时间占比.
--cpu-period=0限制容器在CFS调度下CPU占用的时间片,用于绝对设置容器能使用的CPU时间.
--cpu-quota=0限制容器在CFS调度器下的CPU配额,用于绝对设置容器能使用CPU的时间
--cpuset-cpus=""限制容器能使用那些cpu核数,
--cpuset-mems=""NUMA架构下使用那些核心内存.

2.4 Docker 容器内存资源限制.

参数说明
--kernel-memory=""限制容器使用内核的内存大小
-m,--memory=""限制容器内应用使用内存的大小
--memory-reservation=""当系统中内存过小时,容器会被强制限制内存到给定值默认情况下等于内存限制值
--memory-swap="LIMIT"限制容器使用内存和交换分区的大小
--oom-kill-disable=true内存耗尽时是否终止容器
--oom-score-adj=""调整容器的内存耗尽参数
--memory-swappiness="0-100"调整容器的内存交换分区参数

2.5 Docker 容器磁盘IO控制.

参数说明
--device-read-bps限制此设备上的读速率
--device-read-iops通过每秒读IO次数限制指定设备的读速率
--device-write-bps限制此设备的写速率
--device-write-iops通过每秒写IO次数限制指定设备的写速率
--blkio-weight容器默认磁盘IO的加权值,
--blkio-weight-device针对特定设备的IO加权控制.

**后续更新Docker容器安全相关的命令. **