第一章 docker 镜像,容器,仓库基本命令(一)
注意: docker命令需要root权限
1.创建镜像:
基于已有的镜像容器创建
基于本地模板导入
基于Dockerfile创建
1.1 基于已有的容器创建镜像
docker commit [options] containerID [repository[:tag]]
[options] :
-a #作者信息
-m #提交信息
-p #提交时暂停容器运行
example: docker commit -a "小明" -m "提交说明" ac894se22 dl.dockerpool.com:5000/ubuntu:12.04
#新建一个镜像12.04 .. 这里ac894se22为一个容器的id
1.2 基于本地模板导入 网站地址下载相关的包 https://openvz.org/Download/template/precreated
cat XXX(下载的包名)|docker import - name(新的镜像名)
example:
wget http://download.openvz.org/template/precreated/centos-6-x86-minimal.tar.gz
cat centos-6-x86-minimal.tar.gz|docker import - centos-6-x86 #import - (+自定义的名字)
docker images #查看刚刚导入的镜像是否存在
1.3 基于Dockerfile创建
这里是个链接
2.查看镜像
docker images #列出所有镜像
docker images | grep XXX #条件过滤镜像
docker inspect imageID #获取镜像的详细信息
docker inspect -f {{.属性名}} imageID #获取镜像的某个属性值
3.搜索镜像 docker search
搜索远端仓库共享的镜像,而非本地(仓库)
docker search XXX
docker search mysql
4.拉取镜像 docker pull
docker pull [选项] [Docker Registry地址]<仓库名>[:TAG]
docker pull -a docker.com/ubuntu:12.04 #拉取所有版本是12.04的ubuntu镜像
5.删除镜像
docker rmi imageId #删除镜像,当有该镜像的容器存在时,是无法删除镜像的
docker rmi -f imageId #强行删除镜像
6.存出/载入镜像
将镜像存出到本地
docker save -o newName imageId/repository:tag
example:
#将nginx:latest的镜像寸出到当前文件夹中并重命名为nginx.tar
docker save -o nginx.tar docker.io/nginx:latest
将本地文件载入到镜像
docker load < nginx.tar 或 docker load --input nginx.tar
7.上传镜像到仓库
dockerhub网站注册用户名,或者私库
docker push docker.io/nginx:latest
docker push tag nginx docker.io/nginx:latest
#将nginx重命名 docker.io/nginx:lastest
docker.io必须要有