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书