1、docker images 展示所有镜像
2、docker tag registry.cn-hangzhou.aliyuncs.com/wzwdev/centos7:latest centos7:latest 为本地镜像添加新的标签,只是标签而已,方便我们使用。前者是下载过来的,后者是自定义的
3、docker rmi centos7:latest 使用镜像标签删除镜像,如果同一个镜像有多个标签,那么在删除最后一个标签镜像之前,镜像是不会被删除的
4、docker rmi 镜像id也能删除镜像,它会删除所有镜像id指向的标签镜像,多个镜像可能id是一个,表示来自同一个仓库,最后删除镜像
5、如果镜像在使用,那么是无法删除的,除非用-f(不推荐)
6、docker ps -a 查看本机上所有运行的容器,会有一个container id 。可以使用docker rm containerId 来停止容器运行,然后在做删除镜像操作
7、docker run -ti centos7:latest /bin/bash 利用镜像创建一个容器,在其中运行bash应用(run即创建加启动)
8、ctrl+p,ctrl+q一组使用可以退出宿主机、exit也可以退出宿主机、ctrl+d退出容器
---------------------------------------
创建镜像
1、基于已有镜像的容器创建。
docker run -ti centos7:latest /bin/bash
[root@a3b099307f07 /]# touch test
[root@a3b099307f07 /]# exit
docker commit -m "Added a new file" -a "Docker Newbee" a3b099307 test
这样就创建了test的新镜像
2、基于本地模板导入(略)
3、基于dockerfile创建(以后重点介绍)
------------------------------------------------
存出和载入镜像
存出:docker save -o /data/xxx.tar centos7:latest 其中/data就是存放目录
载入:docker load --input /data/xxx.tar
或docker load < /data/xxx.tar
----------------------------------------------------
上传镜像
可以先使用tag打一个标签,然后使用push命令上传
-------------------------------------------------------------
容器
创建容器并启动
docker create -it centos7:latest 此时容器处于停止状态
docker start启动
建议使用
docker run -it centos7:latest /bin/bash
/bin/bash是启动一个终端,用来交互,有交互就要有-it;可以加-d表示后台运行
退出容器
ctrl+d或exit,只是退出容器
使用 docker ps -a -q 可以查看所有处于停止状态的容器
另外使用docker stop containerId也能终止容器 这种ID可以写头几个,不用全写
重启容器
docker restart containerId
删除容器
docker rm containerId
进入容器
首先使用docker ps -a 查看NAMES
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2bdcea0387cd centos7:latest "/bin/bash" 6 minutes ago Exited (127) 12 seconds ago naughty_elion
之后使用
docker attach naughty_elion 就能进入容器了。
但attach有时候不方便,在多个窗口时,用attach会使所有窗口同步显示
在docker 1.3之后,提供了exec
docker exec -ti containerId /bin/bash 前提要保证容器处于启动状态,如果未启动,那么使用docker restart containerId 启动
导出容器:是指一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态。可以使用docker export containerId > /data/xxx.tar
这个可以实现迁移
导入容器:cat /data/xxx.tar | docker import - xx/centos7:latest.导入后就成为了容器快照到本地镜像库。这与直接载入镜像的区别是:
前者容器快照文件将丢弃所有的历史记录和元数据,即仅保存容器当时的快照状态。而载入镜像是保存完整记录,体积也要大。
---------------------------------------------------------
仓库:
我们使用阿里的镜像仓库
创建和使用私有仓库
docker run -d -p 5000:5000 registry 这将自动下载并启动一个registry容器。默然情况下会创建在容器的/tmp/registry
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry 这样可以将上传的镜像放到指定目录
管理私有仓库镜像
使用docker push 镜像名 就可以传到/data/registry中