第一章 环境准备
- 本次学习环境为在虚拟机Workstation 12 Pro-12.5.0 build-4352439,安装的最新的ubuntu桌面版 ubuntu-16.04-desktop-amd64,内核为4.4.0-21-generic。
- 使用xshell工具连接虚拟机。首次使用需要虚拟机开启ssh服务。
第二章 安装docker
sudo apt-get install docker.io
- 验证docker信息
sudo docker info
第三章 运行docker
sudo docker run -i -t ubuntu /bin/bash
- 首先,我们告诉Docker执行docker run命令,并指定了-i 和 -t 两个参数。-i 标志保证容器中STDIN是开启的,尽管我们并没有附着到容器中。持久的标准输入时交互式shell的“半边天”,-t 标志则是另外“半边天”,它告诉Docker为要创建的容器分配一个伪tty终端。这样,新创建的容器才能提供一个交互式shell。若要在命令行下创建一个我们能与之进行的容器,而不是一个运行后台服务的容器(即退出登录后,docker容器即停止运行),则这两个参数已经是最基本的参数了。
- 停止Docker
exit
- 为Docker容器指定名称(注意: “–name”–为两个相邻的英文的减号-,直接在这里复制不好使)
sudo docker run –name my_first_docker -i -t ubuntu /bin/bash
- 再次以名称启动Docker
sudo docker start my_first_docker
- 查看运行中的Docker
sudo docker ps
- 附着到容器上,Docker重新启动的时候,会沿用Docker run命令时指定的参数来运行,因此我们容器重新启动后会运行一个交互式会话shell。此外,我们也可以用docker attach命令,重新附着到该容器的会话上。可能需要重新按下回车键才能进入该会话。
sudo docker attach my_first_docker
- 创建守护式容器
sudo docker run –name daemon_dave -d ubuntu /bin/bash -c “while true; do echo hello world; sleep 1; done”
- 容器内部都在干什么
sudo docker logs daemon_dave
或者使用-f 类似tail -f 命令,用ctrl+c退出日志跟踪。
sudo docker logs -f daemon_dave
我们也可以跟踪容器日志的某一片段,和之前类似,只需要在tail 命令后加入-f –lines标志即可。例如:
sudo docker logs –tail 10 daemon_dave 获取日志的最后10行内容。
另外,也可以用
sudo docker logs –tail 0 -f daemon_dave 命令来跟踪某个容器的最新日志而不必读取整个日志文件。
- 为了让调试更简单,我们还可以使用-t标志为每条日志加上时间戳,
sudo docker logs -ft daemon_dave
- 查看容器内的进程
除了容器中的日志,我们也可以查看容器内部运行的进程。要做到这一点,要使用docker top命令。
sudo docker top daemon_dave
- 在容器内部运行进程 -d 表明打开一个后台进程
sudo docker exec -d daemon_dave touch /etc/new_config_file
- 如需启动一个shell交互式任务,需要-t,-i
sudo docker exec -t -i daemon_dave /bin/bash
- 停止守护式线程
sudo docker stop daemon_dave
- 自动重启容器
如果由于某种错误而导致容器停止运行,我们还可以通过–restart标志,让Docker自动重新启动该容器。–restart 标志会检查容器的退出代码并根据此来决定是否需要重启容器。默认的行为是不会重启容器。
sudo docker run –restart=always –name daemon_dave1 -d ubuntu /bin/sh “while true; do echo hello world; sleep 1; done”
- 在本例中,–restart 标志被设置为always。无论容器的退出代码是什么,docker都会自动重启该容器。除了always,我们还可以将这个标志设置为on-failure,这样,只有当容器的退出代码为非0值得时候,才会重启。另外,on-failure 还接受一个可选的重启次数参数。
–restart=on-faliure:5
- 深入容器
sudo docker inspect daemon_dave
- 删除容器
sudo docker rm daemon_dave
需要注意的是,运行中的容器是无法删除的!你必须先通过docker stop或者docker kill命令停止容器,才能删除。
- 删除所有容器
sudo docker rm `sudo docker ps -a -q`注意箭头所指的为键盘左上角挨着键位1左边的键,也就是这个【`~】组合键: