镜像


1.获取镜像


docker pull dl.dockerpool.com:5000/ubuntu:14.04(dl.dockerpool.com为注册服务器,5000为端口号,ubuntu为仓库名称,14.04是镜像也是版本号)


2.查看镜像信息


docker images(列出本地主机已有的所有镜像)

更改变迁信息

docker tag dl.dockerpool.com:5000/ubuntu:latest ubuntu:latest

docker inspect 000(000为镜像ID,显示这个镜像的详细信息)


3.搜寻镜像


docker search mysql (输出信息包括镜像名字、描述、星级、是否为官方创建、是否自动创建 )


4.删除镜像


docker rmi dl.dockerpool.com:5000/ubuntu:latest

注:当有该镜像创建的容器存在时,镜像文件默认是无法删除的,所以删除镜像前最好是删除所有依赖该镜像的容器,请不要用强制删除。


5.创建镜像


有三种方法:

a. 基于已有镜像的容器创建

docker commit -m “add new image”-a "" 000(容器ID) test(新建image name)

b. 基于本地模板导入

cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14.04

c. 基于dockerfile创建


6.存出镜像


docker save -o ubuntu_14.04.tar ubuntu:14.04


7.载入镜像


docker load --input ubuntu_14.04.tar 或者

docker load < ubuntu_14.04.tar


8.上传镜像


docker push user/test:latest(user用户需要在dockerHub网站注册)


容器


容器是镜像的一个运行实例,但它带有额外的可写层


1.创建容器

docker create -it ubuntu:12.04

2.创建并启动容器

docker run -it ubuntu:12.04 /bin/bash

3.守护态运行

docker run -d ubuntu:12.04

4.查看容器信息

docker ps [-a -q 查看终止状态]

5.获取容器的输出信息

docker logs cet(cet是容器ID前三个字符)

6.终止容器

docker stop cet

7.启动容器

docker start cet

8.重启容器

docker restart cet

9.进入容器

1) attach命令

docker attach nostalgic(nostalgic是docker的name)

缺点:所有窗口同步显示

2) exec命令

docker exec -it 243... /bin/bash (243...为docker ID)

3) nsenter命令

a)找PID

PID=$(docker-pid 243..)

b)通过PID链接容器

nsenter --target $PID --mount --uts --ipc --net --pid

10.删除容器

docker rm [-f -l -v] cet

-f 强行终止并删除

-l 删除容器的链接,保留容器

-v 删除挂载的数据卷

11.导出容器

docker export cet >test.tar

12.导入容器(将容器快照导入到本地镜像库)

cat test.tar | docker import - test/ubuntu:v1.0(重新指定标签为ubuntu的镜像名称,v1.0的版本号

docker load 也可以导入镜像存储文件到本地镜像库,他比import方式的好处是:import导入镜像快照文件将丢失所有的历史记录和元数据信息。

**注:**通过导出容器和导入容器可以实现容器迁移(拷贝文件)


仓库


仓库是集中存放镜像的地方,一个注册服务器上有很多仓库,一个仓库中有很多镜像。


1. 登录


docker login

2. 基本操作

查找、上传、下载

3. 自动创建

4. 查看镜像

http://www.dockerpool.com/downloads

5. 更新镜像标签

docker tag dl.dockerpool.com:5000/ubuntu:12.04 ubuntu:12.04(将前面的镜像更改为ubuntu:12.04)

6. 创建私有仓库

docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry(自动下载并启动registry容器,创建本地的私有仓库服务,默认仓库船舰的容器在/tmp/registry,可以通过-v参数来存放到指定路径上)

7.管理私有仓库镜像

假设私有仓库地址为10.0.2.2,端口为5000,

docker tag ubuntu:14.04 10.0.2.2:5000/test(更改标签名)

docker push 10.0.2.2:5000/test(push镜像,会自动push到10.0.2.2地址的机器上)

curl http://10.0.2.2:5000/v1/search(查看仓库10.0.2.2:5000中是否含有test镜像)

docker pull 10.0.2.2:5000/test(在任何一台能访问到10.0.2.2地址的机器上下载镜像)