两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 |
public:it:docker [2015/03/03 16:46] – oakfire | public:it:docker [2024/11/22 15:35] (当前版本) – oakfire |
---|
====== docker ====== | ====== Docker ====== |
FIXME | FIXME |
| |
* Official site: [[http://www.docker.com|docker.com]] | * Official site: [[http://www.docker.com|docker.com]] |
* 我的博文, 时间过久, 可能失效:[[http://oak71.com/wp/archives/189|Linux application containers related]] | * 我的博文, 时间过久, 可能失效:[[http://wp.joak.org/archives/189|Linux application containers related]] |
* 这个教程不错:[[http://yeasy.gitbooks.io/docker_practice/|Docker —— 从入门到实践]] | * <wrap tip />这个教程不错:[[http://yeasy.gitbooks.io/docker_practice/|Docker —— 从入门到实践]] <--了解个大概, 由于 docker 更新蛮快,还是要看官方文档. |
| * [[https://yeasy.gitbook.io/docker_practice/repository/registry|私有仓库相关]],包括怎么设置非https私有仓. |
| * [[http://docs.docker.com/compose/| docker compose]] 原 fig |
| ===== Tools ===== |
| * [[https://github.com/wagoodman/dive|dive]]: 8-)这个工具可以显示 Docker 镜像文件每一层的内容 |
| * [[https://github.com/portainer/portainer|portainer]]: 容器管理工具 |
===== Tips ===== | ===== Tips ===== |
* 因为docker一个容器只支持运行一个前台, 所以在docker内使用supervisor来启动多个程序/服务更方便,更易管理.详见:[[http://blog.trifork.com/2014/03/11/using-supervisor-with-docker-to-manage-processes-supporting-image-inheritance/|Using supervisor with docker to manage processes]] | * 因为docker一个容器只支持运行一个前台, 所以在docker内使用supervisor来启动多个程序/服务更方便,更易管理.详见:[[http://blog.trifork.com/2014/03/11/using-supervisor-with-docker-to-manage-processes-supporting-image-inheritance/|Using supervisor with docker to manage processes]] |
* The ''docker exec'' command runs a new command in a running container.This will create a new Bash session in the container container_name:<code>$ sudo docker exec -it container_name bash</code> | * The ''docker exec'' command runs a new command in a running container.This will create a new Bash session in the container container_name:<code bash>$ sudo docker exec -it container_name bash</code> |
| * Dockerfile 的编写注意点: |
| * 一个 ''RUN'' 就会产生新的一层,所以尽量把安装过程写在一行; |
| * 仅仅''MAINTAINR'' 不同得到的image也会不同, 虽然功能完全一样. 所以最好确保同时只有一个或者干脆不写; |
| * 一些不依赖系统的程序可以使用 ''FROM scrach'' 来缩减所得 image 的大小. |
| * 删除所有容器 ''docker rm $(docker ps -aq)''\ |
| * 转移数据目录:[[https://linuxiac.com/how-to-change-docker-data-directory/|how-to-change-docker-data-directory]] |
| ===== docker 背后的技术 ===== |
| * Linux Namespace: [[http://lwn.net/Articles/531114/|Namespaces in operation]], [[http://man7.org/linux/man-pages/man7/namespaces.7.html|Namespace man page]] |
| * Linux CGroup: [[http://coolshell.cn/articles/17049.html|coolshell's article]], [[https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html|Linux Kernel Cgroup Documents]] |
| ===== Mac docker ===== |
| * <wrap important>Mac Docker 目前(v1.13.0)不能在主机访问到 172.17.0.1(docker0)</wrap> |
| * 详见:[[https://github.com/docker/for-mac/issues/483]] |
| * <wrap important>Mac 进入休眠时,有可能会让容器时间不准。</wrap> |
| |
| ===== Docker Logs ===== |
| * container 默认标准输出 stdout stderr 会被 docker 以 json 格式记录到文件里。文件路径可用 <code bash> |
| docker inspect <container> | grep LogPath</code> 查看 |
| * 默认日志可用 ''docker logs <container>'' 查看,带时间戳加参数''-t'' |
| * 这些日志会随时间增多,需要做一些定期清理。 |
| |
| |
| |