创建/登录:
docker login (设置用户名,密码,邮箱,首次注册用户要激活邮箱,激活之后再用docker login 可以登录)
从默认仓库下载镜像:sudo docker pull ubuntu:12.04
等价于 sudo docker pull registry.hub.docker.com/ubuntu:12.04
从其他仓库下载镜像(下载下来的镜像放在本地镜像库):
docker pull registry.intra.cyou.com/centos
创建一个容器,让其中运行 bash 应用:
docker run -t -i centos /bin/bash
列出镜像(docker images列出来的镜像放在本地镜像库,本地镜像库到底在哪儿????):
docker images
修改已有镜像:
先使用下载的镜像启动容器:
sudo docker run -t -i docker pull registry.intra.cyou.com/centos /bin/bash
获取运行的容器ID,稍后还会用到:
docker ps -l
在容器中添加 json 和 gem 两个应用:
例如;gem install json
当结束后,我们使用 exit 来退出(此时容器已经被改变了)
提交更新后的副本(-m 说明信息;-a 可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。
docker commit -m "add nothing" -a "yushuang3" 8973 registry.intra.cyou.com/yushuang3/centos:v1 (创建成功后会返回这个镜像的 ID 信息)
之后,可以使用新的镜像来启动容器:
利用 Dockerfile 来创建镜像:
首先需要创建一个 Dockerfile,包含一些如何创建镜像的指令。
Dockerfile 中每一条指令都创建镜像的一层,例如:
# This is a comment
FROM docker pull registry.intra.cyou.com/yushuang3/centos:v1
MAINTAINER Docker yushuang3 <yushuang3@staff.cyou.com>
RUN apt-get -qq update
RUN apt-get -qqy install ruby ruby-dev
RUN gem install sinatra
编写完成 Dockerfile 后可以使用 docker build 来生成镜像:
docker build -t="registry.intra.cyou.com/yushuang3/centos:v2" /path/to/Dockerfile (-t 用来指定新的镜像)
完成上一步后docker images可以看到生成了新的镜像
修改镜像的tag:
docker tag image_id new_tags
例如: docker tag ad9cafad1a95 registry.intra.cyou.com/yushuang3/centos:test (奇怪的是竟然是新增了带新标签的一个镜像)
从本地文件生成镜像:
cat centos_7.0.1406.tar |docker import - registry.intra.cyou.com/yushuang3/centos_7.0.1406
上传镜像到仓库实现共享:
docker push /path/to/images (传到仓库的什么地方去了?)
导出镜像到本地文件:
docker save -o centos_7.0.1406.tar registry.intra.cyou.com/centos
从导出的本地文件中再导入到本地镜像库:
docker load --input ubuntu_14.04.tar
或者 docker load < ubuntu_14.04.tar
移除本地镜像(注意:在删除镜像之前要先用 docker rm 删掉依赖于这个镜像的所有容器。):
docker rmi 镜像id (默认删除的是未打tag的镜像)
查看某个镜像的的修改历史:
docker history image_name