docker 的镜像与容器都存储在 /var/lib/docker 下面,那么基于不同的系统又有不同的存储方式,在 ubuntu 下面存储方式为 AUFS;在 Centos 下面存储方式又是 device mapper。
容器的创建
下载镜像并创建容器并进入容器: sudo docker run -ti mysql /bin/bash
-i标志容器中STDIN是开启的,-t表示docker为要创建的容器分配一个伪的tty终端。
用/bin/bash命令启动一个shell
获取容器主机名: hostname
获取容器配置清单: cat /etc/hosts
用来给容器命名--name
【容器名只能包括大小写字母,数字下划线,圆点横线】
用容起名启动容器: sudo docker start centos_slave [容器名]
在容器启动后进入容器: docker attach centos_master/id通过id或容器名重新进入到容器的会话中。
创建以后后台长期运行的容器:
sudo docker run --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world;sleep 1;done"
容器内使用了while循环,会一直输出hello world,直到容器停止
输入后没有进入新的会话,仅仅反回了一个容器id
查看容器的日志,
docker logs [容器名/ID]
如果需要跟踪容器日志需要在日志后加 -f 跟踪日志,可以通过Ctrl+c退出日志
查看制定行数日志:
docker logs --tail [行数例如30] [容器名例如daemon_dave]
查看容器的最新日志:
docker logs --tail 0 -f daemon_dave 也可以加上-t为日志加上时间戳
查看容器内的进程:
sudo docker top [容起名daemon_dave]
通过docker exec 后台命令可以在运行的容器内进行维护,-d后台运行标志,在容器内创建一个空文件:
sudo docker exec -d daemon_dave touch /etc/new_config_file[在指定目录下创建文件]
进入容器查看是否已经通过后台命令创建好文件:
sudo docker exec -ti daemon_dave /bin/bash
查看容器个更多的信息包括 配置,名称,命令,网络等很多有用的信息
docker inspect [容器名/id]
查看容器的运行状态
sudo docker inspect --format='{{.State.Running}}' [容器名/id]
查看容器内所有配置信息中指定的一条
sudo docker inspect --format ='{{ .[根节点].[根下一级节点]}}' [容器名/id]
--format 等价于 -f
也可以查看多个容器的同一个信息
sudo docker inspect --format ='{{ .[根节点].[根下一级节点]}} {{ .[根节点].[根下一级节点]}}' [容器名/id]