1.安装:
wget http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm 
yum install docker-io -y


2.获取镜像 pull
docker pull ubuntu
docker pull ubuntu:14.04

3.运行这个镜像,在其中运行bash应用
docker run -t -i  ubuntu  /bin/bash
[root@gaogd docker]# docker run -t -i  ubuntu  /bin/bash
root@d9b713deb3c4:/#

4.查看镜像信息
docker p_w_picpaths


5.给进行打标记
docker tag  ubuntu  ubuntu:test     #进行名称
docker tag 6e7f313d5e21 test01      #6e7f313d5e21 这个是镜像id
docker tag 6e7f313d5e21 test01:002


6.查看镜像的详细信息
docker inspect 6e7f313d5e21


7.搜寻镜像
docker search term  # term 是 要搜寻的镜像名称,如下面查找mysql的镜像
docker search mysql
--automated=false 仅显示自动创建的镜像
--no-trunc=false   输出信息不截断显示
--s,--starts=0 指定仅显示评论为指定星级以上的镜像

8.删除镜像
使用镜像的标签删除镜像
docker rmi tag    #如果镜像还在运行,无法进行删除。如果要强制删除则用 -f,但不建议强制删除
#如果这个tag是镜像的唯一一个tag,如果用rmi删除,就会把整个镜像都删除,如果还有其他的tag在用这个镜像
那么就仅仅删除这个tag而已

使用镜像id进行删除
docker rmi 6e7f313d5e21  #如果镜像还在运行,无法进行删除。如果要强制删除则用 -f,但不建议强制删除



9.导入本地模块
cat ubuntu.tar.gz |docker import - ubuntu 


10.存出镜像
docker save -o  ubuntu.tar.gz   ubuntu

11.存入镜像
docker load ubuntu --input  ubuntu.tar.gz 
docker load ubuntu < ubuntu.tar.gz 








容器
1.创建容器
docker create -it ubuntu:latest
docker ps -a

使用docker create 命令新建的容器处于停止的状态,可以使用docker start 命令来启动它。docker start ubuntu:latest

[root@gaogd docker]# docker create -it ubuntu:latest
bdb579831beddffdc4269212e90e08676c5a3dbf5b7ef817a284e932f1b9f0f6
[root@gaogd docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                      PORTS               NAMES
bdb579831bed        ubuntu:latest       "/bin/bash"            13 seconds ago  

2.新建并启动容器

启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态
的容器重新启动,所需要的命令主义为docker run ,等价于先执行docker create 命令,再执行
docker start命令


下面命令是输出一个"hellow world!!" 之后容器自动终止
[root@gaogd docker]# docker run ubuntu /bin/echo "hello world"
hello world
[root@gaogd docker]#

下面命令则启动一个bash终端,允许用户进行交互
docker run -t -i ubuntu /bin/bash
[root@gaogd docker]# docker run -t -i  ubuntu /bin/bash
root@b02e8434f6c5:/# 
root@b02e8434f6c5:/# exit
exit
[root@gaogd docker]# 

其中。-t 是让docker分配一个伪终端并绑定到容器的标准输入上,
-i 则是让容器的标准输入保持打开

当使用exit退出容器之后,容器也会被自动释放


3.守护状态运行 -d 
docker run -d ubuntu /bin/sh -c "while true ;do echo hello world;sleep 1;done"


4.终止容器 docker stop id 
docker stop fd3e0dc9b66f


5.进入容器
当使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,某些时候如果需要进入容器操作,
有多种方法,包括使用 docker attach 命令,docker exec 命令,以及nsenter

6.attach命令
docker attach 

[root@gaogd ~]# docker run -idt ubuntu
262453cf366aeecccf8b2742c7ba772d03ef312da0db0e6f8e4ac4e06db11703
[root@gaogd ~]# 
[root@gaogd ~]# 
[root@gaogd ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
262453cf366a        ubuntu              "/bin/bash"         14 seconds ago      Up 13 seconds                           tender_hypatia      
[root@gaogd ~]# docker attach tender_hypatia
root@262453cf366a:/# 
root@262453cf366a:/# ifconf
bash: ifconf: command not found
root@262453cf366a:/# ls
但是还用attach命令有时候并不方便,当多个窗口同时attach到一个容器的时候,所有窗口都会同步显示,当某个窗口因命令阻塞
阻塞时,其他窗口也无法执行操作了



[root@gaogd ~]# docker exec -ti ac4d58a2e3ed /bin/bash
root@ac4d58a2e3ed:/# 


7.删除容器
docker rm 命令删除处于终止状态的容器
-f 强行终止并删除一个运行中的容器
-l 删除容器的连接,并保留容器
-v 删除容器挂装的数据卷

8.导出容器
导出容器是指导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态
可以使用docker export 命令,该命令格式为docker export container
如:
docker export ac4d58a2e3ed >test_for.tar 

[root@gaogd ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ac4d58a2e3ed        ubuntu              "/bin/bash"         10 minutes ago      Up 10 minutes                           nostalgic_bohr      
[root@gaogd ~]# 
[root@gaogd ~]# docker export ac4d58a2e3ed >test.ac4d58a2e3ed.ubuntu.v1.tar
[root@gaogd ~]# ll test.ac4d58a2e3ed.ubuntu.v1.tar 
-rw-r--r-- 1 root root 116375552 Nov 30 16:30 test.ac4d58a2e3ed.ubuntu.v1.tar
[root@gaogd ~]# 

9。导入容器
docker import 命令导入,成为镜像
cat test_for.tar |docker import - test/ubuntu:v1.2


[root@gaogd ~]# cat test.ac4d58a2e3ed.ubuntu.v1.tar |docker import - test/ubuntu:v1.2
c4603c9c2d6be029e2c523767f9619112a4a5a895a254eb1824021622284b93b
[root@gaogd ~]# 
[root@gaogd ~]# docker p_w_picpaths
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
test/ubuntu         v1.2                c4603c9c2d6b        13 seconds ago      110.7 MB
test01/001          latest              6e7f313d5e21        2 hours ago         187.9 MB

使用docker load命令来导入一个镜像文件。实际上,既可以使用docker load命令来导入镜像存储文件到本地
镜像库,又可以使用docker import 命令来导入一个容器快照到本地镜像库,这两者的区别在于容器快照文件
将丢失所以的历史记录和元数据信息(既仅保留容器导入时可以的快照状态),而镜像存储文件将保存完整的记录,
所以体积也要大。此外,从容器快照文件导入时,可以重新指定标签等元数据信息