第三章 docker入门
查看docker 是否正常工作:
sudo docker info运行容器:
docker run -i -t ubuntu /bin/bash
-i 保证容器中的STDIN是开启的 // 终端输入开启
-t 为要创建的容器分配一个伪tty终端ubuntu 是 告诉容器基于什么养的镜像来创建容器, 类似的还有fedora
,debian, centos 等基础镜像
首先docker 会检查本地是否存在ubuntu镜像,如果本地没有 该镜像的话
那么docker会链接官方维护的Docker Hub 中是否有该镜像,docker 一旦
找到该镜像,就会下载该镜像并保存到本地宿主机中如果需要指定镜像的版本号可用:版本号 来指定
最后告诉docker 需要在容器中运行什么命令,这里运行了/bin/bash
来启动一个Bash shell- 检查容器进程:
ps -aux - 安装软件:
apt-get update && apt-get install package // 首先update一下 - 查看容器列表:
docker ps 查看运行中的容器
docker ps -a 查看所有的容器 - 退出容器:
exit - 容器命名:
如果不指定容器名字,docker 会随机分配一个唯一的名字
sudo docker run --name flask -i -t ubuntu /bin/bash 停止容器:
sudo docker stop dockername/ID重新启动已经停止的容器:
sudo docker start dockername/ID附着到容器:
当容器重新启动后,不会自动进入会话状态,需要进行一步附着操作
sudo docker attach dockername/ID
执行上步命令后,进入之前的会话状态创建守护式进程:
sudo docker run --name flask -d ubuntu /bin/sh -c "while
true; do echo hello world; sleep 1; done"-d 表示后台运行
通过组合上面参数,并没有将主机的控制台附着到新的shell 会话
,仅仅返回了一个容器ID获取容器日志:
docker logs dockername
此命令会输出最后几条日志跟踪守护式容器的日志:
docker logs -f dockername为每条日志加时间:
docker logs -ft dockernamedocker 日志驱动:
docker 可以利用--log-driver 来驱动日志,该选项常用的两个参数一个是
"syslog", 如果设置了这个选项那么容器中的所有日志将重定向到Syslog
可以在启动docker 守护进程或者 docker run 命令时加入该选项
,同时docker logs 选项将被禁用
还有一个参数是none 这个参数,将会禁用容器中的所有日志,docker logs 也
被禁用查看容器内进程:
docker top dockernamedocker 统计信息:
docker stats dockername // 可以是多个,多个的话并排写一起中间" "隔开
信息如: cpu 内存 网络I/O 储存I/O的性能和指标容器内部运行进程:
docker exec -t -i dockername /bin/bash
在容器内运行交互命令停止守护式进程:
docker stop dockername自动重启容器:
由于某种错误而导致容器停止运行,可以通过 --restart 标志,让docker 自动重启该
容器, --restart 会检查容器的退出代码,以此来决定是否要重启容器-- restart 接收两种参数,always和on-failure, always设定后无论容器的退出代码是
什么都会重启容器,on-failure 只有当容器退出码非0时才会重启,on-failure还接受一个
可选的重启次数参数
eg:
--restart=always
--restart=on-failure:5 //5是可选参数,表示重启次数容器更多的信息:
除了通过docker ps 来获取容器的信息,还可以通过docker inspect 来获得更多的容器信息
返回的配置信息: 包括名称, 命令, 网络配置, 以及其他有用的数据删除容器:
sudo docker rm dockername/ID
如果容器是在运行的容器需要提供 -f 参数