镜像是docker运行容器的前提。
获取镜像
docker pull ubuntu
当然也可以指定标签来下载特定版本的某一个镜像:docker pull ubuntu:14.04
也可以选择从其他注册服务器的仓库下载,如dockerpool社区的镜像源dl.dockerpool.com下载最新的镜像:docker pull dl.dockerpool.com:5000/ubuntu
查看镜像信息
docker images
docker inspect命令可以查看某镜像的详细信息
搜寻镜像
docker search 命令可以搜索远端仓库中共享的镜像
删除镜像:docker rmi
当镜像拥有多个标签的时候,只是删除了该镜像多个标签中指定的标签而已
创建镜像:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建
如:启动一个镜像,并在其中进行修改,然后提交
~~~
docker run -ti ubuntu:14.04 /bin/bash
touch test
exit
docker commit -m "add a new file" -a "Docker qixuan“ imageID test
~~~
顺利的话,会产生新创建的镜像的id信息。
存出和载入镜像
如:存出本地的Ubuntu:14.04镜像为文件ubuntu_14.02.tar
~~~
docker save -o ubuntu_14.04.tar ubuntu:14.04
~~~
如从文件ubuntu_14.02.tar导入镜像到本地镜像列表
~~~
docker load --input ubuntu_14.02.tar 或 docker load < ubuntu_14.02.tar
~~~
上传镜像
用户上传本地的test:latest镜像,可先添加新的标签user/test:latest,然后用docker push
~~~
docker tag test:latest user/test:latest
docker push user/test:latest
~~~
----------------------------------------------------------------------------------------------------------------------------------
容器是镜像的一个运行实例。
docker create创建一个容器,这时的容器是处于停止状态,可使用docker start来启动它
而docker run 等价于docker create + start
如下的命令启动一个bash终端,允许用户进行交互:
~~~
docker run -t -i ubuntu:14.04 /bin/bash 其中-t选项是docker分配一个伪终端并绑定到容器的标准输入上,-i让容器的标准输入保持打开
~~~
如下命令会在后台运行容器:
~~~
docker run -d ubuntu /bin/hash -c "while true;do echo hello world;sleep 1;done"
~~~
启动后会返回一个唯一的id,也可通过docker ps来查看容器信息,如果想要获取容器的输出信息,可以用docker logs命令:docker los 容器ID
docker stop终止一个运行中的容器
docker ps -a -q 可查看处于终止状态的容器id
docker attach进入容器
exec命令:docker exec -ti id /bin/bash
docker rm 删除处于终止状态的容器 -f强行终止并删除一个运行中的容器;-l删除容器的连接;-v删除容器挂载的数据卷
docker export 导出一个已创建的容器到一个文件
docker import导入成为镜像
----------------------------------------------------------------------------------------------------------------------------
仓库(Repository)是集中存放镜像的地方
在企业的生产环境中,则往往需要使用私有仓库来维护内部镜像。