Docker镜像与容器的基本操作

127 阅读3分钟

Docker基本命令

查看镜像

#查看下载到本地的所有镜像
docker images

image.png

查看所有状态容器

docker ps -a    #-a 选项可以显示所有的容器

image.png

docker —— run 指令

docker run hello-world

image.png

工作流程

  • docker client客户端连接到了服务端(服务端是以一个守护进程的形式跑在操作系统里面的) restful api典型的c/s架构
  • 由docker服务端的守护进程从docker hub 上下载了镜像(Ps:服务端会先检查本地系统是否有这个镜像)
  • 服务端创建了一个新的容器,然后从拉去的这个镜像启动了一个容器,容器执行了脚本/可执行程序让我们可以查看/使用(client)
  • docker 服务端把这些信息流(传递)返回到客户端并展示出来,(展示在终端上)
  • docker client可以是多种形式,比如"docker"命令工具所在的终端

查看docker版本命令

docker version 
docker -v   

image.png

查看docker信息

docker info
#可以用该命令统计每一个状态的容器有多少个

image.png

docker帮助命令文档

docker --help

docker 镜像操作

搜索镜像(公共仓库)

docker search 关键字

下载镜像

docker pull 仓库名称[:标签]

image.png

查看镜像列表

docker images

image.png

获取镜像信息

docker inspect  镜像ID

image.png

添加镜像标签

docker tag 名称:[旧标签] 新名称:[新标签]

image.png

删除镜像

docker rmi 仓库名称:标签	 #当一个镜像有多个标签时,只是删除其中指定的标签
docker rmi 镜像ID号	   #会彻底删除该镜像

image.png

容器操作

查询所有容器运行状态

docker ps -a

image.png

创建容器

docker create [选项] 镜像

image.png

启动容器

docker start 容器的ID/名称

image.png

启动容器(一次性执行)

docker run -itd nginx:latest /bin/bash

docker run centos:7 /usr/bin/bash -c ls /   

docker run -d centos:7 /bin/bash -c "while true;do echo hello;done" 

image.png

image.png

image.png

查看容器ip地址

docker inspect 容器id 

image.png

image.png

进入容器

docker exec -it 容器ID/名称 /bin/bash


使用run进入,可以使用ctrl+d退出,直接退出终端
docker run -it centos:7 /bin/bash 

想永久性进入,退出后还是运行状态,用docker exec
docker ps -a 
docker exec -it b99e0771c4e1  /bin/bash

docker attach,会通过连接stdin,连接到容器内输入输出流,公在输入exit后终止容器进程(临时性的,不推荐)

image.png

image.png

容器导出/导入

用户可以将任何一个 Docker 容器从一台机器迁移到另一台机器。在迁移过程中,可以使用docker export 命令将已经创建好的容器导出为文件,无论这个容器是处于运行状态还是停止状态均可导出。可将导出文件传输到其他机器,通过相应的导入命令实现容器的迁移。

导出:
docker export b99e0771c4e1 > centos_7

导入:
docker import centos_7  centos:v1

cat centos_7 |docker import - centos:v2

image.png

image.png

image.png

删除容器

docker rm [-f] 容器ID/名称

不能删除运行状态的容器,只能-f强制删除,或者先停止再删除
docker rm 3224eb044879

已经退出的容器,可以直接删除
docker rm 1270a6791069 

基于名称匹配的方式删除
docker rm -f distracted_panini

删除所有运行状态的容器
docker rm -f `docker ps -q`

删除所有容器
docker rm -f `docker ps -aq`

有选择性的批量删除 (正则匹配)
docker ps -a l awk ' {print "docker rm "$1}'l bash

删除退出状态的容器
for i in `dockef ps -a l grep -i exit / awk '{print $1}' '; do docker rm -f $i;done

image.png

image.png

查看docker消耗的资源状态

docker stats

image.png