【docker学习之二】Docker的基本概念

1、Docker的镜像和容器

   镜像这个概念比较抽象,不怎么好表达,个人的看法是镜像本质是一系列文件组成,是应用和其运行环境、环境依赖的集合。

     那么什么是容器呢? 个人认为容器就是运行在镜像之上,一个个应用的运行实例。

     这样描述比较抽象大家估计不是能马上理解,那么可以用一个比喻来形容镜像和容器的概念,那就是程序里的类和对象。

     镜像很像程序开发中类的概念,而容器就是一个个对象,一个镜像可以生成许多容器。就好比建筑图纸和建筑物本身的关系,镜像就是图纸而容器就是建筑物本身。这样说应该比较好理解了。

2、从哪里获得镜像

     有两种途径一种是下载已经制作好的镜像,分为Docker官方和个人提供,其中Docker官方有个Docker Hub https://hub.docker.com/_/nginx/ 里面有许多官方提供的镜像,国内也有许多公司提供存储个人镜像的服务例如:灵雀云和时速云里面有许多个人提供的镜像源。另外一种是个人根据需要制作的镜像,可以以官方或者其他开发者提供的镜像为蓝本制作镜像,也可以自己编写Dockerfile文件创建镜像。当然你也可以把自己的镜像上传到网上让别人下载使用。

3、镜像常用命令    

 

名称 命令
说明示例
查看镜像列表
docker images
 
拉取镜像
docker pull <镜像名:tag>
docker pull php:5.6-fpm
删除单个镜像
docker rmi  <镜像ID>
docker rmi  a34ed26e4a98
删除之前确保此镜像下的容器已经停止和删除
删除所有镜像
docker rmi $(docker images | grep none | awk '{print $3}' | sort -r)
删除之前确保所有容器已经停止和删除
构建自己的镜像Dokcerfile
docker build -t <镜像名> <Dockerfile路径>
docker build -t scofi/php-fpm:5.6 ./php
镜像迁移
docker save <镜像名> > 宿主机路径
docker load < 宿主机路径
docker save mynewimage > /tmp/mynewimage.tar
(把 mynewimage 镜像保存成 tar 文件,我将使用 /tmp 目录保存这个镜像,但是你可以使用 NFS 来共享,使得非常容易的移动完成 tar 文件。)
 
docker save mynewimage > /tmp/mynewimage.tar

把 mynewimage.tar 拷贝到新的 Docker 实例中,使用任何工作在你环境中的方法,比如 FTP、SCP 等等。

在你的新的 Docker 实例中运行 docker load 命令,并且指定 tar 镜像文件的位置。

镜像查找
docker search  <镜像名>
docker search  nginx

4、容器常用命令

 

名称
命令
说明示例
查看容器列表
docker  ps 
docker  ps -a 
正在运行中的容器
所有容器,包含已经停止的
启动容器并进行交互
docker run -i -t <容器名称> /bin/bash
docker run -i -t centos:7 /bin/bash
启动容器并且启动守护进程
docker run -v /home/docker:/opt -d  --name php zjd-php-fpm
以守护态运行(加参数-d):docker run -v /home/docker:/opt -d  --name php zjd-php-fpm
停止容器
docker stop <容器ID>
docker stop 10c
启动容器
docker start <容器ID>
docker start 10c
删除容器
docker rm <容器ID>
docker rm 10c
posted @ 2015-12-25 20:17  scofi  阅读(290)  评论(0编辑  收藏  举报