一、Docker介绍

1. Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上, 也可以实现虚拟化. 容器时完全使用沙箱机制,互相之间不会有任何接口.
2. 启动非常快,秒级实现.
3. 资源利用率很高,一台机器可以跑上千个docker容器.
4. 更快的交付和部署,一次创建和配置后,可以在任意地方运行.
5. 内核级别的虚拟化,不需要额外的hypevisor支持,会有更高的性能和效率.
6. 易迁移,平台依赖性不强.

二、Docker核心概念

1.镜像: 是一个只读的模版,类似于安装系统用到的iso文件,我们通过镜像来完成各种应用的部署.
2.容器: 镜像类似于操作系统,而容器类似于虚拟机本身.它可以被启动、开始、停止、删除等操作. 每个容器都是相互隔离的.
3.仓库: 存放镜像的一个场所,仓库分为公开仓库和私有仓库.

三、Docker安装

1.笔记机器是Centos6.4 x64位, 首先升级系统.
1
2
3
4
5
6
7
8
bash-3.2# yum -y install epel-release
bash-3.2# yum update
bash-3.2# yum -y install docker-io
bash-3.2# /etc/init.d/docker start
bash-3.2# chkconfig --add docker
bash-3.2# chkconfig docker on
bash-3.2# ps aux|grep docker
root     1396    1  0 May20 ?        00:15:31 /usr/bin/docker -d

四、Docker镜像管理

1.下载centos镜像
1
2
3
bash-3.2# docker pull centos
bash-3.2# docker images
centos              latest              2a332da70fd1        2 weeks ago         196.7 MB
2.更改镜像名称
1
2
3
4
5
bash-3.2# docker tag centos:latest 90root:90root
bash-3.2# docker images
centos              latest              2a332da70fd1        2 weeks ago         196.7 MB
90root              90root              2a332da70fd1        2 weeks ago         196.7 MB
###可以看到,其实基于centos:latest拷贝一份镜像. 仔细看发现两者IMAGE ID一样.
3.Docker搜索公有镜像
1
2
3
4
5
6
7
8
bash-3.2# docker search centos
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                          The official build of CentOS.                   2358      [OK]
ansible/centos7-ansible         Ansible on Centos7                              75                   [OK]
jdeathe/centos-ssh              CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8...   25                   [OK]
jdeathe/centos-ssh-apache-php   CentOS-6 6.7 x86_64 / Apache / PHP / PHP M...   17                   [OK]
nimmis/java-centos              This is docker images of CentOS 7 with dif...   12                   [OK]
………………………………………………
4.启动一个容器
1
2
3
4
5
bash-3.2# docker run -it centos /bin/bash
bash-96d50d4ae5e4# exit
##退出容器之后,容器停止
## -i: 让容器的标准输入打开
## -t: 为容器分配一个为终端
5.查看运行的容器
1
2
3
4
bash-3.2# docker ps          #查看正在运行的容器
bash-3.2# docker ps -a       #查看所有容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
96d50d4ae5e4        centos              "/bin/bash"         4 minutes ago       Exited (0) 3 minutes ago                       desperate_hopper
6.删除镜像
1
2
3
4
5
6
7
8
9
10
11
bash-3.2# docker images     #查看镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
90root              0617                b14c8813ddbd        3 days ago          513.4 MB
90root              90root              2a332da70fd1        2 weeks ago         196.7 MB
centos              latest              2a332da70fd1        2 weeks ago         196.7 MB
bash-3.2# docker rmi docker rmi 90root:0617     #删除镜像
bash-3.2# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              latest              2a332da70fd1        2 weeks ago         196.7 MB
90root              90root              2a332da70fd1        2 weeks ago         196.7 MB
## 不推荐通过镜像id删除镜像
05-08 15:13