容器带有可写文件层。虚拟机是独立运行的一整套操作系统和跑在上面的应用。docker容器是独立运行的一个应用,以及他们必须的运行环境。
创建、启动、终止容器,进入容器内执行操作、删除、导入导出等操作。
创建容器 虚拟机的进化。对容器进行操作和直接操作应用一样简单快速。 docker create -it ubuntu:14.04 查看容器 docker ps -a 处于停止状态,启动 docker start id create和run命令支持的选项十分复杂分三大类:与容器运行模式相关、与容器和环境配置相关、与容器资源限制和安全保护相关。、
新建并启动容器: docker run ubuntu /bin/echo 'hello world' 其中docker run相当于先执行docker create 再执行docker start ,在输出完hello world后容器自动终止。
docker run的标准执行流程:检查本地镜像,不存在就从仓库下载;用镜像创建一个容器,启动该容器;分配一个文件系统给容器,在只读镜像层外挂载一层可读写层;从宿主机配置的网桥接口中桥接一个虚拟接口到容器中;从网桥的地址池配置一个ip地址给容器;执行用户指定的程序;执行完毕后容器自动终止。
启动bash终端并交互 docker run -it ubuntu:14.04 /bin/bash
man docker-run查看命令选项
pwd显示路径名ps查看进程exit退出容器
错误代码 125 是docker daemon执行出错;126是指定命令无法执行,如权限出错;127是容器内命令无法找到。
守护态运行。利用参数-d实现。容器会进入后台,无法看到信息,无法操作。 此时进入容器有三个方法:attach、exec、nsenter。 docker attach name 多个窗口连到容器时,会同步显示。 docker exec -it id /bin/bash重新打开一个交互用的bash终端。推荐使用。 nsenter命令通过pid连接,命令偏长,不推荐。
获取容器输出信息 docker logs id
终止容器 docker stop id 强行终止容器docker kill id 当容器中应用终结时,容器就会自动终止。 重启容器docker restart id
删除容器 docker rm id 有可选项-f -l -v。
导出容器 从一个系统迁移到另一个系统。导出一个已创建的容器到一个文件,无论运行与否,docker export命令。如docker export -o aa.tar id
导入容器 docker import aa.tar - test/ubuntu:v1.0
参考文章 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS说明: -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项; -d: 后台运行容器,并返回容器ID; -i: 让标准输入打开,以交互模式运行容器,通常与 -t 同时使用; -t: 为容器重新分配一个伪输入终端并绑定到容器的标准输入上,通常与 -i 同时使用; --name="nginx-lb": 为容器指定一个名称; --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致; --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致; -h "mars": 指定容器的hostname; -e username="ritchie": 设置环境变量; --env-file=[]: 从指定文件读入环境变量; --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行; -m :设置容器使用内存最大值; --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型; --link=[]: 添加链接到另一个容器; --expose=[]: 开放一个端口或一组端口;