docker三大核心组件的概念

1镜像:

 Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了 Apache 应用程序(或用户需要的其他软件)。可以把它称为一个 Apache镜像。

  镜像是创建Docker 容器的基础。通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的镜像直接使用

2.容器

Docker 容器类似于一个轻量级的沙箱,Docker 利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例。可以将其启动、开始、停止、删除,而这些容器都是彼此相互隔离的、互不相见的。
可以把容器看做是一个简易版的Linux系统环境

3.仓库

Docker 仓库可以分为公开仓库(Public)和私有仓库(Private)两种形式。目前最大的公开仓库是Docker Hub, 存放了数量庞大的镜像供用户下载。国内也有阿里云等

docker的初步安装与使用

要求:可以使用uname -a,查看

Docker 运行在CentOS  上,要求系统为64位、系统内核为3.10以上
Docker 运行在CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为2.6.32- 或者更高版本。

安装:

yum -y install docker

systemctl start docker

systemctl status docker

systemctl enable docker

查看版本信息:

docker version

基础镜像命令的使用:

1.搜索镜像:

docker search centos

docker search --automated=ture -s 3 nginx

解释:查找评价为三星+的nginx的镜像,仅显示自动创建的镜像

2.获取镜像docker pull

docker pull centos

3.查看镜像:

docker images或者docker images ls

4.删除镜像:

docker rmi imagesID或者唯一标示的名字

5.导出镜像

docker save centos > /tmp/docker_centos.tar

或者使用:docker image save centos > /tmp/docker_centos.tar

6.导入镜像:

docker image load < /tmp/docker_centos.tar

7.给镜像打标签

docker image tag centos centos7.3

docker容器管理

启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一种是将在终止状态(stopped)的容器重新启动

创建镜像

docker create -it centos /bin/bash

docker ps -a

docker start id

docker attach id【根据已经启动的容器的id,进入容器中】

退出使用:exit

启动一个bash终端,允许用户进行交互

复制代码
[root@server ~]# docker run --name mydocker -t -i centos /bin/bash
[root@8bad1a6db7b2 /]# pwd
/
[root@8bad1a6db7b2 /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var --name: 给容器定义一个名称
-t:让Docker分配一个伪终端并绑定到容器的标准输入上
-i:让容器的标准输入保持打开
/bin/bash:执行一个命令
docker run 的参数
-i, --interactive 交互式
-t, --tty 分配一个伪终端
-d, --detach 运行容器到后台
-a, --attach list 附加到运行的容器

当利用docker run 来创建容器时,Docker在后台运行的标准操作包括

1检查本地是否存在指定的镜像,不存在就从公有仓库下载;
2利用镜像创建一个容器,并启动该容器;
3分配一个文件系统给容器,并在只读的镜像层外面挂载一层可读写层;
4从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中;
5从网桥的地址池配置一个 IP 地址给容器;
6执行用户指定的应用程序;
7执行完毕后容器被自动终止。

守护进程运行(后台运行)

更多的时候,需要让Docker容器在后台运行,而不是直接把执行命令的结果输出在当前宿主机下。此时可以加 -d 参数来实现

[root@server ~]# docker run -d centos /bin/bash -c "while true; do echo hello world; sleep 1; done"
0ca1770a1fd0b21ae05f2f6bd9befbb9eef55576ab0a0b51fc6dc7e427128174
[root@server ~]# docker ps  #查看正在运行的docker容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0ca1770a1fd0 centos "/bin/bash -c 'while…" seconds ago Up seconds ecstatic_wu
8bad1a6db7b2 centos "/bin/bash" minutes ago Up minutes mydocker
[root@server ~]# docker logs 0ca1770a1fd0  #获取容器输出信息,通过docker logs命令
hello world
hello world
hello world

但是使用attach命令有时候并不方便,当多个窗口同时 attach 到同一个容器的时候,所有窗口都会同步显示,当某个窗口因命令阻塞,其他窗口也无法执行操作了。且通过exit退出后容器就自动终止了。这时可以考虑使用nsenter

导入,导出,删除容器

[root@server ~]# docker export mydocker > centos.tar  #导出一个容器,也可以使用docker export -o centos.tar mydocker。 -o 指定导出的名字
[root@server ~]# ll centos.tar
-rw-r--r-- root root 1月 : centos.tar
导入容器
导出的文件又可以使用 docker import 命令导入变成镜像,例如
[root@server ~]# cat centos.tar | docker import - test/centos:7.3 [root@server ~]# docker rm a661c9dd4470   #删除已经停止的容器
[root@server ~]# docker rm $(docker ps -a -q)   # 获取全部容器的ID,进行删除

docker(2)的更多相关文章

  1. docker(4)使用Dockerfile文件创建镜像-对docker(3)的改进

    在<docker(3)docker下的centos7下安装jdk>中,当进入容器后,执行 java命令 不能运行,需要执行source /etc/profile才能执行.如果采用Docke ...

  2. 理解Docker(8):Docker 存储之卷(Volume)

    (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 ...

  3. 理解Docker(7):Docker 存储 - AUFS

    (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 ...

  4. 理解Docker(6):若干企业生产环境中的容器网络方案

    本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  5. 理解Docker(5):Docker 网络

    本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  6. 理解Docker(4):Docker 容器使用 cgroups 限制资源使用

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  7. 理解Docker(3):Docker 使用 Linux namespace 隔离容器的运行环境

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  8. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  9. 理解Docker(2):Docker 镜像

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  10. CenOS 6.5下安装docker(转)

    2014-12-15 10:23 blessed24 To be Done的博客 字号:T | T 最近在自己的centos上搭建了一个Docker,顺便将一些常用操作记录下. AD:51CTO网+ ...

随机推荐

  1. Eclipse打包jar

    对一个包打jar包 右键包名-Export-Jar File-选择所在包的class文件(注意),如果选择java文件会失败-然后Finish 检查jar包是否正确,使用如jd-gui这样的反编译工具 ...

  2. 2019NYIST计科第四次周赛

    YZJ的牛肉干 Description 今年的ACM暑期集训队一共有18人,分为6支队伍.其中有一个叫做 YZJ的大佬,在共同的集训生活中,大家建立了深厚的友谊, YZJ准备做点什么来纪念这段激情燃烧 ...

  3. RabbitMQ集群架构(HA)并结合.NET Core实操

    一.前言 已经一年没有更新博客了,由于公司事务比较多,并且楼主我也积极在公司项目中不断实践.net core.DDD以及Abp vnext,也积累了一些吐血经验,目前我在做一家在线教育公司负责智慧校园 ...

  4. 1-1. OSS/ALSA 声卡的驱动与配置和 Madplay 嵌入式播放器的移植

    报警子系统 一. OSS/ALSA 声卡的驱动与配置 声卡驱动中传统的OSS构架在02年被收购后即不开源,并且OSS的混音效果不好->因此ALSA构架孕育而生. ALSA(高级音频构架,目前应用 ...

  5. Light of future-冲刺Day 6

    目录 1.SCRUM部分: 每个成员进度 SCRUM 会议的照片 签入记录 代码运行截图 用户浏览界面 订单详情界面 管理员浏览界面 新增后台界面 2.PM 报告: 时间表 燃尽图 任务总量变化曲线 ...

  6. ajax2.0之拖拽上传

    index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...

  7. 大数据hadoop安装

    hadoop集群搭建--CentOS部署Hadoop服务 在了解了Hadoop的相关知识后,接下来就是Hadoop环境的搭建,搭建Hadoop环境是正式学习大数据的开始,接下来就开始搭建环境!我们用到 ...

  8. Android Google Play app signing 最终完美解决方式

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/105561341 本文出自[赵彦军的博客] 在 GooglePlay 创建 App ...

  9. pgsql的使用

    Deepin上面pgsql的启动 service postgresql start 停止 service postgresql stop 查看pgsql的版本 psql --version

  10. Mysqldump参数大全 这 些参数 不同于 mysql 的那些参数(下边文章开头有链接) :2 种类型的参数含义是不一样的

    Mysqldump参数大全  这 些参数 不同于 mysql 的那些参数  :2 种类型的参数含义是不一样的 Mysqldump参数大全(参数来源于mysql5.5.19源码) 参数 参数说明 --a ...