一、几个重要的概念

在使用docker时,我们得先弄清楚docker的几个重要的概念

1)Docker生态

Docker生态就像 iPhone 的生态一样,Docker仓库相当于 IPhone 的 App Store,docker自身程序相当于IOS系统。

2)Registry和Repository

Registry:注册服务器,用于管理镜像仓库,起到的是服务器的作用。

Repository:镜像仓库,用于存储具体的docker镜像,起到的是仓库存储作用。

3)镜像与容器

镜像(image):指的是以分层的、可以被 LXC/libcontainer 理解的文件存储格式。Docker的应用都是以这种格式发布到Docker仓库中,供大家使用。

可以理解为打包后的环境和应用。

容器(container):把应用镜像从 Docker 仓库下载到本地机器上,以镜像为模板,在一个容器类虚拟机中把这个应用启动,这个虚拟机叫做容器。可以理解为相当于在windows上运行了一个程序。

可以先简单的理解,仓库中的应用都以镜像存在,从仓库中拉取镜像到本地的,叫容器。这里可以参考文章《十分钟明白什么是容器技术》,对容器做进一步的认识和了解。

二、docker常用命令

1、镜像的操作

   Build、Pull、Run这三个操作贯穿整个镜像的操作,后面会举栗子讲到

1)列出本地所有的镜像

docker images 或者 docker image ls(新版docker命令)

 docker的重要概念和常用命令

2)查看镜像

从Docker Hub查找镜像

docker search mysql(镜像名称)

3)下载镜像

docker pull mysql:5.7

说明:这里的5.7是指TAG版本号,可以到hub.docker.com上面查看。

当不使用Tag的时候,默认会使用latest进行标记。

4)获取容器/镜像的元数据

 docker image inspect mysql:5.7

5)删除镜像

docker rmi -f mysql:5.7

rmi:删除本地一个或多少镜像       -f :强制删除

2、容器的操作

1)创建一个新的容器并运行

docker run --name  -d(后台运行) -p(端口映射:宿主机端口对应容器开放的端口) -e(配置环境变量) MYSQL_ROOT_PASSWORD=1234 mysql:5.7

 docker的重要概念和常用命令

2)在运行的容器中执行命令

-i 交互模式

-t分配一个伪终端

-it在容器中开启一个交互模式的终端

docker container exec -it  mysql /bin/bash

 docker的重要概念和常用命令

3)列出容器

docker  ps          列出当前正常执行的容器 

dockers ps -a     列出所有镜像包含退出,停止,异常的容器

docker  ps  -l     列出最新创建的容器包括所有状态

 docker的重要概念和常用命令

4)强制删除容器

docker  rm  -f  mysql

或者 docker  rm  1153a1996288(容器ID:container id)

5)容器的开启和停止

docker stop 容器ID : 来停止一个正在运行中的容器
docker start 容器ID : 可以启动一个停止状态的容器。
docker restart 容器ID : 先会停止该容器,然后重新启动该容器。

6)批量删除Docker中已经停止的容器

方法一:

#根据容器的状态,删除Exited状态的容器

 

sudo docker rm $(sudo docker ps -qf status=exited)

方法二:
#Docker 1.13版本以后,可以使用 docker containers prune 命令,删除孤立的容器。

 

sudo docker container prune

 7) docker inspect  [OPTIONS] NAME|ID [NAME|ID...] : 获取容器/镜像的元数据

这个命令非常有用,在分析容器的状态、网络、等详细信息的时候很有帮助。如下图:

docker的重要概念和常用命令

 

参考链接:https://zhuanlan.zhihu.com/p/39155341

相关文章: