核心概念

镜像

是docker容器的基础,可以理解为面向docker引擎的只读模板。比如:一个镜像只包含了nginx,则称为nginx镜像;一个镜像只包含了ubuntu,则可以称为ubuntu镜像。

获取镜像

docker pull name[:tag]

例如:获取Ubuntu镜像,docker pull ubuntu,如果不指定tag,,默认下载lastest版本。

查看镜像列表

docker images

查看镜像详情

docker inspect 镜像id

搜寻镜像

docker search ubuntu

删除镜像

docker rmi 镜像id或者标签

创建镜像

  1. 基于已有容器创建。

docker commit [options] container [respostory [:tag]]

options:

-a :作者信息。

-m:提交信息。

-p:提交时,是否暂停容器运行。

例子:

docker commit -a "mask" -m "add file" 容器id 新容器名称

  1. 基于dockerfile

//todo

上传镜像

docker push name [:tag]

导出镜像

docker save -o xxx.jar repostory:tag

载入镜像

docker load < xxx.jar

容器

容器是镜像运行的实例,可以理解为一种轻量级的linux系统环境,具有独立的用户空间,内核空间,网络空间,进程空间。

新建并启动容器

docker run image [options]

相当于docker createdocker start命令。

-i:让容器的标准输入打开。

-t:分配一个伪终端并绑定到标准输出上。

-d:在后台以守护态运行。

流程:

  1. 本地仓库查找镜像,如果不存在,就从远程仓库获取。

  2. 利用镜像创建一个容器并启动。

  3. 分配一个文件系统,并在只读的镜像层外面挂载一个可写层。

  4. 从宿主机配置的网桥接口中桥街一个虚拟接口到容器中去。

  5. 从地址池中选择一个ip分配给容器。

  6. 执行用户指定的用户程序。

  7. 如果不是守护命令启动的,容器终止。

终止容器

docker stop 容器id

查看容器列表

docker ps

-a:查询所有

重启容器

docker restart

进入容器

docker exec -ti 容器id

删除容器

docker rm [options] container

-f:强制删除容器。

-l:删除容器的连接,保留容器。

-v:删除容器挂载的数据卷。

导出容器

docker export container > xxx.jar

导入容器

cat xxx.jar |docker import - repostory:tag

镜像的导出和容器的导出区别:

容器的导出,属于导出的快照,历史信息会消失。镜像的导出是包含所有的数据。

仓库

存放镜像的地方。一般会在本地搭建一个私有仓库。

创建私有仓库

docker run -d -p 5000:5000 register

默认在/tmp/register目录下,-v指定私有仓库位置。

Last updated

Was this helpful?