本文档中使用“/#”表示正处于容器的交互式命令行中“#”表示处于宿主机命令行中
#Docker run –I –t Ubuntu /bin/bash //创建并启动容器,随机分配容器名称,如果本地没有ubuntu镜像会从仓库下载
/# hostname
/#cat /etc/hosts
/#ps –aux //容器中查看进程
/#apt-get update
/#apt-get install vim // 容器中安装vim
# docker run --name ubuntu_container –i –t Ubuntu /bin/bash //为容器命名
#docker ps –a //列出所有的容器,包括正在运行和已经停止的去掉a参数则只列出所有正在运行的, 容器的命名必须是唯一的。
#docker ps –n 7 //显示最后7个容器,无论是停止还是正在运行
#docker start ubuntu_container //重新启动已经停止的容器可以用docker ps 查看正在运行的容器, 重启的时候会安装之前的参数重启
#docker start 5bc30c6010ed //通过id重启容器
#docker stop ubuntu_container //停止容器 向容器发送SIGTERM信号
#docker stop 5bc30c6010ed //停止容器也可以用容器id
#docker kill ubuntu_container //快速停止容器
#docker kill 5bc30c6010ed //快速停止容器 向容器发送SIGKILL信号
#docker create //创建一个容器但是并不运行
#docker attach ubuntu_container //重启之后,可以通过attach附着到容器中重新进入容器的bash交互式命令行,执行该命令之后可能需要回车键才可以回到bash
#docker attach 5bc30c6010ed // 后面除了接容器名称还可以接容器id
#docker run --name daemon_demo -d ubuntu /bin/sh -c "whle true; do echo hello world;sleep 1; done" //创建一个守护式容器,-d 表示后台运行, while循环打印hello world,执行该命令之后并没有进去交互式bash, 而是会返回一个容器id
#docker logs daemon_demo //获取守护式容器的日志会输出hello world
#docker logs -f daemon_demo //-f 操作类似tail –f , 按ctrl c 停止
#docker logs tail 10 daemon_demo //输出最后十行日志
#docker logs tail 0 -f daemon_demo //跟踪最新日志
#docker run –log-driver=“syslog” --name daemon_demo -d ubuntu /bin/sh -c "whle true; do echo hello world;sleep 1; done"//将所有日志重定向输出到syslog,docker log将失效
#docker top daemon_demo // 查看容器内部的进程
#docker stats [容器名称1 容器名称2 …]// 显示一个或者多个容器的统计信息,可以查看各个容器的cpu,内存, 网络IO等等;docker1.5中引入的指令
//容器中运行进程:1后台任务, 2交互式任务
#docker exec –d daemon_demo touch /etc/new_config_file //在容器中运行一个进程,touch命令创建一个新的空文件,-d表示后台运行
#docker exec –I –t daemon_demo /bin/bash //在容器内进行交互式命令
//容器自动重启: 由于某种错误导致容器停止通过--restart参数自动重启,--restart会检查容器退出代码,据此决定是否需要重启,默认不会重启
#docker run -–restart=always --name daemon_demo -d ubuntu /bin/sh -c "whle true; do echo hello world;sleep 1; done" //-–restart=always表示无论退出代码是什么都会重启,除了always之外还有“on-failure”值,on-failure只有在退出代码为0时才重启它还可以指定重启的次数:“-–restart=on-failure:5”表示当退出代码为0时重启,最多重启5次
#docker inspect daemon_demo //获取容器的详细配置信息,可以查看容器的名称、命令、网络配置、以及其他的很多有用数据
#docker inspect --format=‘{{ .State.running}}’ daemon_demo// 可以用-f或者—format查看选定的结果, 例如该命令返回容器的运行状态 –f或—format支持go语言模板
#docker inspect –format ‘{{ .NetworkSettins.IPAddress}}’ daemon_demo //返回容器的IP
#docker inspect –format ‘{{.Name}} {{ .NetworkSettins.IPAddress}}’ daemon_demo ubuntu_container //查看多个容器的多个选定的结果
#docker rm 5bc30c6010ed //删除容器
# docker rm ‘sudo docker ps –a -q’ //删除所有容器sudo docker ps –a –q的-a会列出所有的容器,-q会只返回容器id而不会返回其他信息,如此便获取了所有容器的id列表并传给docker rm 命令