Docker 1.5正式版今年2月初发布了,在这个版本中Docker加入很多期望已久的新功能,其中只读容器和容器运行状态监控非常实用,让我们来看看吧!
升级到1.5
我的操作系统是CentOS 6.6,首先通过epel源来安装docker,里面附带了很多docker相关的启动脚本。这个docker的版本是1.4.1
1 2 3 4 5 6 7 8 9 10 |
# docker -v Docker version 1.4.1, build 5bc2ff8/1.4.1 # 下面升级docker,我们直接下载最新的docker bin文件,并替换docker的现有的二进制文件即可。 # wget https://get.docker.com/builds/Linux/x86_64/docker-latest -O docker # chmod +x docker # service docker stop Stopping docker: [ OK ] # cp docker /usr/bin/docker # docker -v Docker version 1.5.0, build a8a31ef |
OK~
配置监听端口
1 2 3 4 |
vim /etc/sysconfig/docker other_args="-H 10.62.242.201:5555 -H debugo01:5555 -H unix://var/run/docker.sock" service docker start Starting docker: [ OK ] |
只读容器
在1.5版本中可以使用–read-only参数启动一个容器,使它的文件系统“只读”;这个功能可以让你为容器中运行的应用限定特定的文件写入路径;此功能结合“数据卷”(volumes)使用可以确保容器中运行的程序只能将数据写入到事先指定的路径下。
1 2 3 4 5 6 7 8 9 10 11 12 |
#read-write [root@debugo01 ~]# docker run -it --rm ubuntu root@268b8e5ebeff:/# echo 'hello world' >> /tmp/hello #read-only [root@debugo01 ~]# docker run -it --rm --read-only -v /root:/root ubuntu root@b27c5797a803:/# echo "hello world" >> /tmp/hello.txt bash: /tmp/hello.txt: Read-only file system root@b27c5797a803:/# echo "hello world" >> /root/hello.txt root@b27c5797a803:/# exit exit [root@debugo01 ~]# cat hello.txt hello world |
容器运行状态监控
Docker 1.5中我们提供了新的状态统计API(stat API endpoint)与相应的命令行工具;使用这些方式你可以实时监控一个运行容器的CPU、内存、网络IO与块设备IO运行情况。你也可以使用stats API来构建工具来将这些信息传送到已有的监控系统中,或者自己实现一个监控面板。文档传送门:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# 下面首先启动一个registry服务 [root@debugo01 ~]# docker run -e STORAGE_PATH=/registry -e SETTINGS_FLAVOR=local -p 5000:5000 -v /var/lib/docker/registry:/registry -d --name registry_instance registry 5323bf4dbf59f8313232df5ff9b13a9c3de51a3a5cf198f82fc5ec10f8002b1a [root@debugo01 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5323bf4dbf59 registry:latest "docker-registry" 5 seconds ago Up 4 seconds 0.0.0.0:5000->5000/tcp registry_instance # docker top获得进程信息,包括进程号、父进程号、命令等。然后我们需要结合操作系统命令来获得进程的相关信息。但是不能对一个容器自身(全部进程)的性能进行监控,这是灰常不方便的。 [root@debugo01 ~]# docker top 5323bf4dbf59f8313232df5ff9b13a9c3de51a3a5cf198f82fc5ec10f8002b1a UID PID PPID C STIME TTY TIME CMD root 5429 2931 2 10:02 ? 00:00:00 /usr/bin/python /usr/local/bin/gunicorn --access-logfile - --error-logfile - --max-requests 100 -k gevent --graceful-timeout 3600 -t 3600 -w 4 -b 0.0.0.0:5000 --reload docker_registry.wsgi:application root 5488 5429 2 10:02 ? 00:00:00 /usr/bin/python /usr/local/bin/gunicorn --access-logfile - --error-logfile - --max-requests 100 -k gevent --graceful-timeout 3600 -t 3600 -w 4 -b 0.0.0.0:5000 --reload docker_registry.wsgi:application root 5489 5429 2 10:02 ? 00:00:00 /usr/bin/python /usr/local/bin/gunicorn --access-logfile - --error-logfile - --max-requests 100 -k gevent --graceful-timeout 3600 -t 3600 -w 4 -b 0.0.0.0:5000 --reload docker_registry.wsgi:application root 5490 5429 2 10:02 ? 00:00:00 /usr/bin/python /usr/local/bin/gunicorn --access-logfile - --error-logfile - --max-requests 100 -k gevent --graceful-timeout 3600 -t 3600 -w 4 -b 0.0.0.0:5000 --reload docker_registry.wsgi:application root 5491 5429 2 10:02 ? 00:00:00 /usr/bin/python /usr/local/bin/gunicorn --access-logfile - --error-logfile - --max-requests 100 -k gevent --graceful-timeout 3600 -t 3600 -w 4 -b 0.0.0.0:5000 --reload docker_registry.wsgi:application [root@debugo01 ~]# pidstat -t -p 5429 Linux 3.8.13-44.1.1.el6uek.x86_64 (debugo01) 02/12/15 _x86_64_ (4 CPU) 10:12:27 TGID TID %usr %system %guest %CPU CPU Command 10:12:27 5429 - 0.00 0.00 0.00 0.00 0 gunicorn 10:12:27 - 5429 0.00 0.00 0.00 0.00 0 |__gunicorn # 有了docker stats,这下方便多了。可以查看CPU/内存和网络I/O [root@debugo01 ~]# docker stats5323bf4dbf59f8313232df5ff9b13a9c3de51a3a5cf198f82fc5ec10f8002b1a CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O 5323bf4dbf59f8313232df5ff9b13a9c3de51a3a5cf198f82fc5ec10f8002b1a 2.45% 100.8 MiB/7.799 GiB 1.26% 468 B/468 B |
Nothing
是啊,随手一些笔记而已。
这个更刺c激,准备好手纸哦 A 片。。 288d.pw
这个更C刺j激,准备好手纸哦 A 片。HTTp://T.Cn/Rc4PF3o
这个更C刺j激,准备好手纸哦 A 片。HTTp://T.Cn/Rc4PF3o
太阳公公:小兄弟 听说你最近病了 要不要哥给你发功治治