docker使用整理
ubuntu:内核
Docker 支持以下的 Ubuntu 版本:
Ubuntu Precise 12.04 (LTS)
Ubuntu Trusty 14.04 (LTS)
Ubuntu Wily 15.10
centos:内核
Docker支持以下的CentOS版本:
CentOS 7 (64-bit)
CentOS 6.5 (64-bit) 或更高的版本
windows mac
安装(centos 7):
yum -y install docker-io
service docker restart
docker run hello-world
运行web:
docker pull training/webapp
docker run -d -p 5000:5000 training/webapp python app.py
docker port
终端:
docker run ubuntu:15.10 /bin/echo "Hello world" //没有会去下载
docker run -i -t ubuntu:15.10 /bin/bash //交互式
docker logs id
常用命令:
docker ps
docker images
docker rm 命令来删除不需要的容器 注意,不是docker images查到的镜像
docker pull
docker search
创建镜像:
当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
1.从已经创建的容器中更新镜像,并且提交这个镜像
docker run -t -i ubuntu:15.10 /bin/bash
//更新容器
docker commit -m="has update" -a="wangbo" 26599d50edad wangbo/ubuntu:v2
docker images
2.使用 Dockerfile 指令来创建一个新的镜像
docker build Dockerfile
docker build -t wangbo/centos:6.7 .
docker run -t -i wangbo/centos:6.7 /bin/bash
docker tag e36f722e480b wangbo/centos:dev 路径名:标签名
docker 实例
(1)nginx镜像:主机和容器之间可以进行挂载等操作
-v进行目录挂载,指定mount目录和主目录,进入容器后直接调用
(2)python 镜像:
-v 目录挂在,-w设定工作目录。
命令大全:
生命周期管理:run start/stop/restart kill rm pause/unpause create exec容器操作:ps inspect top attact events logs wait export port
容器rootfs命令:commit cp diff
镜像仓库: login/pull/push/search
本地镜像管理:images/rmi/tag/build/history/save/import
info|version: info/version
打包发布应用可以参考
https://blog.csdn.net/Deng2012web/article/details/78440796
https://www.cnblogs.com/yshyee/p/7258477.html
dockerfile cmd
按用途容器大致可分为两类:服务类容器和工具类的容器。
1. 服务类容器以 daemon 的形式运行,对外提供服务。比如 web server,数据库等。通过 -d
以后台方式启动这类容器是非常合适的。如果要排查问题,可以通过 exec -it
进入容器。
2. 工具类容器通常给能我们提供一个临时的工作环境,通常以 run -it
方式运行,比如:
docker run
--restart=always
意味着无论容器因何种原因退出(包括正常退出),就立即重启。该参数的形式还可以是 --restart=on-failure:3
,意思是如果启动进程退出代码非0,则重启容器,最多重启3次。
退出包括正常退出或者非正常退出。这里举了两个例子:启动进程正常退出或发生 OOM,此时 docker 会根据 --restart
的策略判断是否需要重启容器。但如果容器是因为执行 docker stop
或docker kill
退出,则不会自动重启。
docker rm
一次可以指定多个容器,如果希望批量删除所有已经退出的容器,可以执行如下命令:
docker rm -v $(docker ps -aq -f status=exited)
每天5分钟docker摘录
第一章:容器基本操作
构建镜像,分层结构,base镜像
本章首先通过大量实验学习了容器的各种操作以及容器状态之间如何转换,然后讨论了限制容器使用 CPU、内存和 Block IO 的方法,最后学习了实现容器的底层技术:cgroup 和 namespace。
下面是容器的常用操作命令:
create 创建容器
run 运行容器
pause 暂停容器
unpause 取消暂停继续运行容器
stop 发送 SIGTERM 停止容器
kill 发送 SIGKILL 快速停止容器
start 启动容器
restart 重启容器
attach attach 到容器启动进程的终端
exec 在容器中启动新进程,通常使用 "-it" 参数
logs 显示容器启动进程的控制台输出,用 "-f" 持续打印
rm 从磁盘中删除容器
第二章:网络
在这一章我们首先学习了 Docker 的三种网络:none, host 和 bridge 并讨论了它们的不同使用场景;然后我们实践了创建自定义网络;最后详细讨论了如何实现容器与容器之间,容器与外部网络之间的通信。
本章重点关注的是单个主机内的容器网络,对于跨主机网络通信将在后面章节详细讨论
第三章:存储
1. docker 为容器提供了两种存储资源:数据层和 Data Volume。
2. 数据层包括镜像层和容器层,由 storage driver 管理。
3.Data Volume 有两种类型:bind mount 和 docker managed volume。
4.bind mount 可实现容器与 host 之间,容器与容器之间共享数据。
5.volume container 是一种具有更好移植性的容器间数据共享方案,特别是 data-packed volume container
6.最后我们学习了如何备份、恢复、迁移和销毁 Data Volume。