
本文不讲如何安装Docker,深入了解Docker,请移步至:https://hub.docker.com/。
1、什么是Docker?
Docker是用Go语言开发实现,对进程进行封装隔离,属于操作系统层面的虚拟化技术。
由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器(Container)。
Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。
2、Docker的基本概念
(1)image-镜像:一个独立的文件系统fileSystem(类似虚拟机里的镜像,包含运行时需要的系统、软件、代码、库、环境变量、配置文件等)
比如下图,从远端仓获取到的2个image,busybox和hello-world

(2)container-容器:由镜像(image)创建的运行实例(类似虚拟机,可以对它执行启动、停止、删除等操作)
比如下图,每个container都有一个唯一的container ID,每个container都运行在对应的image中,如:da587e94c42d这个container就是image busybox创建的一个实例。

(3)repository-仓库:提供集中存储、镜像分发的服务,类似github。用户可以从仓库(repository)上传或下载镜像
比如:https://hub.docker.com/ 上的busybox和hello-world仓,我们可以执行docker pull命令,将这些存储在远端仓的image拉取到本地。
3、与传统vm的区别
(1)每个vm都对应自己独立的os
(2)每个container共享一个os的资源
4、常用docker的操作命令
(1)docker pull busybox
这条命令从docker hub上下载busybox镜像存在本地。
(2)docker images
这条命令查看本地images list
(3)docker ps -a
这条命令显示所有容器

(4)docker run -it busybox
连接进入到容器中的tty
(5)docker rm 96dfce02247d
删除容器,相当于删除了96dfce02247d这个container。
这里需要注意:如果96dfce02247d的STATUS状态没有Exit,rm操作会发生错误。
比如:
$docker run -it busybox

此时,ed99941f052d container并不是Exit状态,执行$docker rm ed99941f052d ,会报错
$ docker rm ed99941f052d
Error response from daemon: You cannot remove a running container ed99941f052db108164e583363b809c7955292ba74a26d45dea12811766a3afc. Stop the container before attempting removal or force remove
解决方法:
A、主动退出busybox container
B、执行docker stop ed99941f052d命令

(6)docker start
此命令启动一个container,比如:
docker start da587e94c42d — 启动container By ContainerID
docker logs da587e94c42d — 查看这个容器的日志log

(7)批量start/stop/rm container/images
$docker stop $(docker ps -a -q) #停止所有的container
$docker rm $(docker ps -a -q) #删除所有的container
$docker rmi $(docker images -q) #删除所有的image
(8)docker search busybox
此命令查询远端仓中的image
>> 本文结束end