Docker特性
文件系统隔离:每个进程容器运行在完全独立的根文件系统里。
资源隔离:可以使用cgroup为每个进程容器分配不同的系统资源,例如CPU和内存。
网络隔离:每个进程容器运行在自己的网络命名空间里,拥有自己的虚拟接口和IP地址。
写时复制:采用写时复制方式创建根文件系统,这让部署变得极其快捷,并且节省内存和硬盘空间。
日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell。
daocloud.io加速
镜像搜索
docker search <image>:在docker index中搜索image
镜像拉取
docker pull daocloud.io/centos:7
镜像查看
docker images: 列出images docker images -a :列出所有的images(包含历史) docker images --tree :显示镜像的所有层(layer) docker rmi <image ID>: 删除一个或多个image
使用镜像创建容器
docker run -it --name Centos1 daocloud.io/centos /bin/bash
查看容器
docker ps :列出当前所有正在运行的container docker ps -l :列出最近一次启动的container docker ps -a :列出所有的container(包含历史,即运行过的container) docker ps -q :列出最近一次运行的container ID
再次启动容器
docker start/stop/restart <container> :开启/停止/重启container docker start [container_id] :再次运行某个container (包括历史container) docker attach [container_id] :连接一个正在运行的container实例(即实例必须为start状态,可以多个窗口同时attach 一个container实例) docker start -i <container> :启动一个container并进入交互模式(相当于先start,在attach) docker run -i -t <image> /bin/bash :使用image创建container并进入交互模式, login shell是/bin/bash docker run -i -t -p <host_port:contain_port> :映射 HOST 端口到容器,方便外部访问容器内服务,host_port 可以省略,省略表示把 container_port 映射到一个动态端口。
使用start是启动已经创建过得container,使用run则通过image开启一个新的container
删除容器
docker rm <container...> :删除一个或多个container docker rm `docker ps -a -q` :删除所有的container docker ps -a -q | xargs docker rm :同上, 删除所有的container
退出时,使用[ctrl + D],这样会结束docker当前线程,容器结束,可以使用[ctrl + P][ctrl + Q]退出而不终止容器运行
镜像的导出导入
通过容器生成新的镜像
运行中的镜像称为容器。你可以修改容器(比如删除一个文件),但这些修改不会影响到镜像。不过,你使用docker commit <container-id> <image-name>命令可以把一个正在运行的容器变成一个新的镜像。
例如通过镜像创建容器运行,进入容器,建立文件,退出
docker commit <container> [repo:tag] 将一个container固化为一个新的image,后面的repo:tag可选。
用该镜像生成容器测试
可以看到刚才新建的文件依旧在,对容器的操作已经保存至镜像中
持久化容器
export命令用于持久化容器 docker export <CONTAINER ID> > /tmp/export.tar
导入持久化容器
删除container 8a1a24c5bfd6
导入export.tar文件
cat /tmp/export.tar | docker import - export:latest
持久化镜像
Save命令用于持久化镜像 docker save 镜像ID > /tmp/save.tar
导入持久化镜像
删除image b289e8bd8ab2
导入save.tar文件
对image打tag