Docker Hello World
本文记录第一次使用 Docker
的操作,以备日后查阅。
原文链接:https://docs.docker.com/get-started/
安装 Docker
系统相关,源里都有,不说废话。
cheat sheet :
1 | sudo yum remove docker{,-engine,-common,-selinux} |
NFS 共享根文件系统的几台机器之中只能有一台启动 docker,如何绕过此限制?
基本使用
1 | docker images |
在 CentOS 中跑起来的 ubuntu 镜像 bash,运行 uname -a 结果如下。可见内核版本仍然为 CentOS 的版本。
Linux 1587622a5387 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Docker 集群
1 | docker swarm init --advertise-addr 10.*.*.* # IP 隐去,请填写一个本机IP |
Dockerfile
本部分中我们自己创建一个 docker 镜像。
docker 镜像基于已有的上游镜像,在基础上自己添加内容。
创建 Dockerfile app.py requirements.txt 三个文件,内容按照教程原样复制:
https://docs.docker.com/get-started/part2/#apppy
建立镜像的命令:
1 | sudo docker build -t friendlyhello . |
Docker Hub
1 | docker login |
Docker Service
yml stack 等概念,要在 swarm 上面部署的服务。Docker 认为服务是同类型容器的组合。一个 stack 当中可以包括多个网络与服务。
1 | docker swarm init |
注意要在其他物理机上确保镜像存在。哦没主意它会不会自动拉取镜像。
stack deploy 可以重复执行,会热更新。
吐槽一句,docker.io 的 registry 基本上处于墙着的状态……
1 | curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://3917a16c.m.daocloud.io |
导入导出镜像与容器
1 | save / load # 镜像 |