什么是守护式容器:
能够长期运行没有交互式的会话
以守护形式运行容器
docker run -i -t image /bin/bash
root@eddy:~/ubuntu-precise# docker run -i -t ubuntu-base /bin/bash
root@55d94cfcc622:/#
使用ctrl+p ctrl+q
root@eddy:~/ubuntu-precise# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
55d94cfcc622 ubuntu-base "/bin/bash" 42 seconds ago Up 40 seconds adoring_jones
这样我们看到容器依然是运行中的
再次进入到容器中
root@eddy:~/ubuntu-precise# docker attach 55d94cfcc622
root@55d94cfcc622:/#exit
root@eddy:~/ubuntu-precise# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
这样我们看到容器就停止了
以run命令启动一个守护式容器
docker run --name dc1 -d images /bin/bash
root@eddy:~/ubuntu-precise# docker run --name dc1 -d ubuntu-base /bin/bash -c "while true;do echo hello world;sleep 1;done"
6ac95abee8bee73cdd8f92a588753548a103890d302beb2ca27c02bf66039576
root@eddy:~/ubuntu-precise# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6ac95abee8be ubuntu-base "/bin/bash -c 'while " 18 seconds ago Up 17 seconds dc1
容器依然在运行
这里只是以后台方式运行容器,如果命令结束,容器依然会关闭
查看容器内部运行情况,容器日志
docker logs -f -t --tail container-name
-f,一直跟踪日志的变化,默认是false
-t,给日志加上时间戳
--tail =‘all‘
不加参数会返回所有的日志
root@eddy:~/ubuntu-precise# docker logs -tf dc1
实时打印日志
root@eddy:~/ubuntu-precise# docker logs -tf --tail 0 dc1
实时打印最新一条日志
root@eddy:~/ubuntu-precise# docker logs -tf --tail 10 dc1
实时打印最后10条日志
查看容器内的进程
root@eddy:~/ubuntu-precise# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6ac95abee8be ubuntu-base "/bin/bash -c 'while " 7 minutes ago Up 7 minutes dc1
root@eddy:~/ubuntu-precise# docker top dc1
UID PID PPID C STIME TTY TIME CMD
root 16205 1350 0 23:32 ? 00:00:00 /bin/bash -c while true;do echo hello world;sleep 1;done
root 16741 16205 0 23:40 ? 00:00:00 sleep 1
在运行中的容器启动新的进程
docker exec -d -i -t container-name command
root@eddy:~/ubuntu-precise# docker exec -i -t dc1 /bin/bash
使用ctrl+p ctrl+q
root@eddy:~/ubuntu-precise# docker top dc1
UID PID PPID C STIME TTY TIME CMD
root 16205 1350 0 23:32 ? 00:00:00 /bin/bash -c while true;do echo hello world;sleep 1;done
root 16875 1350 1 23:42 pts/10 00:00:00 /bin/bash
root 16894 16205 0 23:42 ? 00:00:00 sleep 1
可以看到启动的新的进程
停止守护式进程
docker stop container-anme
docker kill contai-name
stop发送一个信号等待容器停止
kill会直接停止容器
root@eddy:~/ubuntu-precise# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6ac95abee8be ubuntu-base "/bin/bash -c 'while " 11 minutes ago Up 11 minutes dc1
root@eddy:~/ubuntu-precise# docker kill dc1
dc1
root@eddy:~/ubuntu-precise# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
转载于:https://my.oschina.net/eddylinux/blog/607725