devops基础---docker常用命令与基本操作+思维导图(三)

回顾:上二文对Docker做了一些最基本介绍,主要讲解相关小历史与概念,及Docker的安装与基本查看命令操作,相信大家对docker有了一些基本的了解。

本文将在安装好的Docker环境下使用Docker命令行客户端开始学习Docker常用指令与基本操作。

devops基础---docker常用命令与基本操作+思维导图(三)

本小节的思维导图如下:

devops基础---docker常用命令与基本操作+思维导图(三)

Docker帮助命令

通过命令 docker command --help 或者docker help command更深入的了解指定的 Docker 命令使用方法。

示例:

docker help run/docker run –help (输出的结果是一样的)

docker version: 显示Docker版本

docker info: 显示Docker信息

Docker镜像常用操作命令

罗列镜像

docker images: 列出当前镜像
docker images [OPTIONS] [NAME]
命令参数:
-a, --all=false 显示所有镜像,包括中间生成的临时镜像
-f, --filter=[] 通过标签过滤 (i.e. 'dangling=true')
--no-trunc=false 不要截断输出
-q, --quiet=false 仅显示容器ID
docker images 显示当前仓库中的镜像
docker images -a 显示当前仓库中的镜像与临时镜像
docker images -a -q --no-trunc 显示当前仓库中的镜像与临时镜像的ID,不截断输出

示例:

devops基础---docker常用命令与基本操作+思维导图(三)

搜索镜像

docker search: 在Docker Hub上寻找镜像
docker search TERM
命令参数:
--automated=false 使用Github或BitBucket的源代码自动构建
--no-trunc=false 不要截断输出
-s, --stars=0 只显示Star数量超过N的镜像
例子:
docker search --starts=10 nginx
devops基础---docker常用命令与基本操作+思维导图(三)

以上图中包含5个字段,意义如下:

NAME:表示镜像名字,名称不带“/”表示官方发布仓库,否则代表是其他用户二次发布。

DESCRIPTION:表示镜像描述信息

STARS:表示镜像的收藏数,用户可以登录Docker Hub对镜像进行收藏,这个数字类似github上的star,数量代表欢迎程度

OFFICIAL:官方标识,值为[OK]

AUTOMATED:表示是否自动构建,代码托管在Github,代码提交后自动构建镜像

拉取镜像

docker pull: 从远程拉取镜像
docker pull NAME[:TAG] (不加tag, 默认安装最新版本)
例子:
docker pull nginx:latest
devops基础---docker常用命令与基本操作+思维导图(三)

此时如果执行ctrl + c将会中断拉取镜像。静静等待镜像拉取完成,然后罗列本地镜像将看到本地镜像已经有了刚刚拉取的nginx镜像,执行docker images。

此时如果执行ctrl + c将会中断拉取镜像。静静等待镜像拉取完成,然后罗列本地镜像将看到本地镜像已经有了刚刚拉取的nginx镜像,执行docker images。

以上图中包含5个字段,意义如下:

REPOSITORY:表示镜像仓库

TAG:表示镜像版本信息

IMAGE ID:表示本地唯一序列标识,默认显示12位,实际长度是64位

CREATED:镜像创建的时间,使用距离当前的时间来表示

SIZE:表示镜像的大小

推送镜像

docker push: 推送镜像到远程仓库
docker push NAME[:TAG]
例子:
docker push workdsz/nginx:latest

构建镜像

docker build: 使用Dockerfile构建镜像
docker build [OPTIONS] PATH|URL|-
命令参数:
--force-rm=false 移除构建时生成的中间容器
--no-cache=false 构建镜像时不使用cache
-q, --quiet=false 不显示容器的输出
--rm=true 构建成功后,移除构建时生成的中间容器
-t, --tag="" 构建成功后,新建镜像的名称
 

镜像打TAG

docker tag: 为镜像加上标签
docker tag [OPTIONS] IMAGE[:TAG][REGISTRYHOST/][USERNAME/]NAME[:TAG]
命令参数:
-f, --force=false 强制打上标签
例子:
docker tag nginx:latest workdsz/nginx:1.13 给nginx:latest打上新TAG: workdsz/nginx:1.13

删除镜像

docker rmi 删除一个或者多个镜像
docker rmi IMAGE [IMAGE...]
命令参数:
-f, --force=false 强制删除镜像
--no-prune 不要删除未标记的父级
例子:
docker rmi -f nginx:latest

Docker容器常用操作

创建并启动容器

docker run: 在一个新的容器中执行命令 (CTRL-p CTRL-q 退出至后台运行)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
例子:
docker run -i -t nginx:latest /bin/bash 启动一个新的nginx容器
docker run --rm -i -t nginx:latest /bin/bash 建议新手测试加上--rm
docker run -i -t --name "nginx-test" nginx:latest /bin/bash

查看容器进程

docker ps: 列出当前容器
docker ps [OPTIONS]
命令参数:
-a, --all=false 显示所有容器,包括当前没有运行的容器
-f, --filter=[] 按条件过滤容器, 可选的过滤选项:
exited= 容器的返回值
-l, --latest=false 显示最新的一个容器
-n num 显示最新的N个容器
--no-trunc=false 不要截断输出
-q, --quiet=false 仅显示容器ID
-s, --size=false 显示容器大小
例子:
docker ps 当前正在运行的容器
docker ps -a 当前正在运行或是停止的容器
docker ps -a -q --no-trunc 获得当前所有容器的ID,不截断输出
docker rm $(echo $(docker ps -q --no-trunc) $(dockerps -a -q--no-trunc) | sed 's|\s|\n|g' |sort | uniq -u)
删除当前不在运行状态的容器ID,也可以把前面改成docker rm
 

进入容器

docker attach: 挂载正在后台运行的容器到前台
docker attach [OPTIONS] Container
例子:
docker attach nginx 

执行命令

docker exec -i -t nginx ls -l

停止容器

docker stop: 停止运行中的容器 (CTRL-d 强制退出, Exited (0))
docker stop [OPTIONS] CONTAINER [CONTAINER...]
命令参数:
-t, --time=10 杀掉容器进程之前,等待的时间
例子:
docker stop nginx

终止容器

docker kill: 杀掉一个运行中的容器 (Exited (-1))
docker kill [OPTIONS] CONTAINER [CONTAINER...]
命令参数:
- s, --signal="KILL" 选择向容器发出的Signal
例子:
docker kill nginx

启动容器

docker start: 重启停止的容器
Docker start CONTAINER [CONTAINER...]
命令参数:
-a,--attach=false 启动容器并进入容器中
-i,--interactive=false 启动容器并进入交互模式
例子:
docker start nginx

重启容器

docker restart: 重启运行中的容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]
命令参数:
-t, --time=10 杀掉容器进程之前,等待的时间
例子:
docker restart nginx
 

删除容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]
命令参数:
-f, --force=false 强制删除容器(使用SIGKILL)
-l, --link=false 删除指定的链接,而不是基础容器
-v, --volumes=false 移除与容器关联的卷
例子:
docker rm nginx 删除容器
docker rm $(docker ps -a -q) 删除所有容器
 

导出容器

docker export: 把容器系统文件打包并导出来,方便分发给其他场景使用。
docker export CONTAINER
例子:
docker export nginx > nginx.tar 将nginx的最新镜像打包为nginx.tar导入容器

导入容器

docker import: 加载容器系统文件
docker import URL|- [REPOSITORY[:TAG]]
例子:
docker import nginx workdsz/nginx:latest
docker import http://example.com/exampleimage.tgz
cat exampleimage.tgz | docker import -exampleimagelocal:new


分享到:


相關文章: