以下实例操作基于rhel7.2
一.Docker 简介
Docker 是一个开源的应用容器引擎,主要利用 linux 内核 namespace 实现沙盒隔离,用cgroup 实现资源限制。在 没 有 aufs 支 持 的 linux 发 行 版 本 上 (CentOS,opensuse 等 ) 安 装 docker 可 能 就 使 用 了devicemapper driver。
二.Docker安装
下载docker 的rpm包
三.Docker容器管理
1.容器(container)和镜像(images)的区别示意图
要点:容器=镜像+读写层
2.Docker容器文件系统
3.Docker命令解释
# docker run -it --name vm1 ubuntu bash 创建容器
# docker ps -a 查看容器进程
# docker attach vm1 连接容器
# docker top vm1 查看容器进程
# docker logs vm1 查看容器指令输出 -f 参数可以实时查看
# docker inspect vm1 查看容器详情
# docker stats vm1 查看容器资源使用率
# docker diff vm1 查看容器修改
# docker run -d --name vm1 ubuntu bash -c "while true; do echo westos; sleep 1; done" 后台运行
# docker stop vm1 停止容器
# docker start vm1 启动容器
# docker kill vm1 强制干掉容器
# docker restart vm1 重启容器
# docker pause/unpause vm1 暂停/恢复容器
# docker rm vm1 删除容器
# docker export vm1 > vm1.tar 导出容器
# docker import vm1.tar image 导入容器为镜像 image
4.实例
(1).搭建2048小遊戲
# docker load -i game2048.tar #导入镜像
# docker inspect game2048 #此命令用来查看镜像詳細信息
# docker run -d -p 8000:80 --name game game2048 #运行小游戏,并将容器的80端口映射到本机的8090端库执行
測試:在本機瀏覽器:172.25.254.50:8090
(2).搭建nginx服務器
[root@wrh-50 2-26-文档-Docker]# docker load -i nginx.tar #导入镜像
d8bd0657b25f: Loading layer 130.9 MB/130.9 MB
a582cd499e0f: Loading layer 1.024 kB/1.024 kB
f5a1ef78853b: Loading layer 1.024 kB/1.024 kB
605083c53cc5: Loading layer 1.024 kB/1.024 kB
c95d1af3960d: Loading layer 67.97 MB/67.97 MB
0a410ba58143: Loading layer 3.584 kB/3.584 kB
fb6fc13654c9: Loading layer 1.024 kB/1.024 kB
36b0adefb2f3: Loading layer 1.024 kB/1.024 kB
[root@wrh-50 2-26-文档-Docker]# docker images #查看镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest af4b3d7d5401 23 months ago 190.5 MB
#了解nginx容器的配置:
[root@wrh-50 2-26-文档-Docker]# docker run -it nginx bash
root@1ee3a2a4fa40:/# find / -name nginx
/etc/default/nginx
/etc/init.d/nginx
/etc/logrotate.d/nginx
/etc/nginx
/usr/lib/nginx
/usr/sbin/nginx
/usr/share/doc/nginx
/usr/share/nginx
/var/cache/nginx
/var/log/nginx
root@1ee3a2a4fa40:/# cd /etc/nginx/conf.d/
root@1ee3a2a4fa40:/etc/nginx/conf.d# ls
default.conf #nginx的配置文件
root@1ee3a2a4fa40:/etc/nginx/conf.d# cat default.conf
[root@wrh-50 2-26-文档-Docker]# docker run -d --name nginxserver nginx #运行nginx容器并起名为nginxserver
b10bad72981d6b26c2fbcbf21e43eb35d7daa128b290ab110938e5236571b74c
[root@wrh-50 2-26-文档-Docker]# docker kill `docker ps -q`
b10bad72981d
1ee3a2a4fa40
[root@wrh-50 2-26-文档-Docker]# docker rm `docker ps -aq`
b10bad72981d
1ee3a2a4fa40
[root@wrh-50 2-26-文档-Docker]# docker run -d --name web -p 80:80 -v /tmp/docker/web/:/wrh -v /tmp/docker/vhost.conf:/etc/nginx/conf.d/vhost.conf nginx
4b4b297ed6a00f68b5cc2fdc92d1cb446d28da6f46e5083917759fabae7b3c78
[root@wrh-50 2-26-文档-Docker]# vim /tmp/docker/web/index.html