DockerTest - juedaiyuer/researchNote GitHub Wiki
#Docker测试#
在上一节安装完成后,需要对所安装的Docker进行验证,正如官方文档所说Verify your installation
##几个重要的概念##
###image镜像###
- 镜像就是一个只读的模板。比如,一个镜像可以包含一个完整的Ubuntu系统,并且安装了apache
- 镜像可以用来创建Docker容器
###container容器###
- Docker用容器来运行应用。容器是从镜像创建出来的实例(好有面向对象的感觉,类和对象),它可以被启动、开始、停止和删除
###仓库###
- 这个好理解了,就是放镜像的文件的场所。比如最大的公开仓库是Docker Hub,感觉这货和github差不多
##实践##
命令需要sudo
#搜索仓库中是否有该软件
$ sudo docker search 软件名
#查看安装docker的版本
$ sudo docker version
#查看运行的容器
#参数-a 运行过哪些容器
$ sudo docker ps
#查看本机Docker中存在哪些镜像
$ sudo docker images
#返回所有容器和镜像
$ sudo docker info
$ sudo docker run hello-world
##运行容器##
man docker-run
sudo docker run -i -t ubuntu /bin/bash
root@0be6200030a4:/#
- 已经处于容器的命令行下
##容器命名##
--name
##重新启动已经停止的容器##
#启动已经停止运行的容器,会沿用docker run命令指定的参数来运行
#shell停留在本机
sudo docker start 容器名
#附着到容器上
sudo docker attach 容器名
##创建守护式容器##
除了创建交互式容器(interactive container),也可以创建长期运行的容器,即守护式容器
#创建守护式容器(daemonized container)
#在容器运行的命令里使用了一个while循环,一直打印hello world.
#没有将主机的控制台附着到新的shell会话,仅仅返回了一个容器ID,仍在主机的命令行
sudo docker run --name 容器名 -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
#获取容器日志
#-f 监控Docker日志;类似于tail -f
$ sudo docker logs testDaemon
$ sudo docker logs -f testDaemon
#获取最后10行日志
$ sudo docker logs --tail 10 testDaemon
#获取最新日志
$ sudo docker logs --tail 0 -f testDaemon
#获取最新日志,并加上实践戳
$ sudo docker logs --tail 0 -ft testDaemon
##查看容器内进程##
$ sudo docker top 容器名
##在容器内部运行进程##
运行进程种类:1.后台任务 2.交互式任务
#后台任务
$ sudo docker exec -d testDaemon touch /etc/new_config_file
#打开shell的交互式任务
$ sudo docker exec -t -i testDaemon /bin/bash
##停止守护式容器##
$ sudo docker stop testDaemon
##自动重启容器##
--restart=
always
on-failure 只有退出代码为非0,才会自动重启
on-failure:5 设定重启次数
##深入容器##
#了解更多信息
$ sudo docker inspect 容器名
#-f --format选定查看结果
#返回容器的运行状态
$ sudo docker inspect --format ='{{ .State.Running}}' 容器名
#返回容器的IP地址
$ sudo docker inspect --format ='{{ .NetworkSettings.IPAddress}}' testDaemon
#可以指定多容器
$ sudo docker inspect --format ='{{ .Name}}' 容器1 容器2
#删除容器
$ sudo docker rm 容器名
#删除全部容器技巧
#-q参数只返回容器ID
$ sudo docker rm `docker ps -a -q`
f标志支持完整的GO语言模板
##source##
- 第一本Docker书