Docker入门记录(更新中)
docker样例链接:link to docker samples
Docker在工程部署领域有很强的应用能力,同时分布式部署的概念的理解也有助于理解k8s等,故此记录一下一些docker入门的操作,方便日后回顾。其实也是顺着docker官网的教程来看的。
几个重要术语
镜像(Image):就很像是安装操作系统的ISO文件,里面提供了运行环境,镜像分为基础镜像和子镜像,基础镜像就是没有父镜像的镜像,就比如ubuntu镜像,子镜像构建在基础镜像之上,增加了额外的功能。
容器(Container):容器是运行时镜像的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库存放了各种各样的镜像可以供使用和下载。
Docker命令行操作
docker pull + 镜像名称
docker pull dockersamples/static-site
从docker store里面拉取镜像docker run + 镜像名称 + 即将运行的容器内运行的命令
docker run -d dockersamples/static-site
如果本地没有该镜像,会从docker store里面去寻找docker run -it ubuntu /bin/bash 进入容器内
exit 退出容器docker ps
查看运行的container信息docker stop + 容器id
停止该容器运行有一些参数值得注意
-d: 让容器在后台运行,不会自动退出
-i: 让容器以交互式操作进行
-t: 让容器以终端操作进行
-v: 挂载宿主机的一个目录
创建镜像
主要依赖于Dockerfile(Dockerfile是一个包含了一系列命令的文本文件,可以被Docker守护进程调用从而创建镜像),文件里面包括了所需要用来run某个app的所有信息,1. 一个基础Docker镜像, 2. 项目代码位置, 3. 依赖信息, 4. 开始时执行的代码。
基础镜像
FROM alpine:3.5
安装python和pip
RUN apk add --update py2-pip
安装依赖
COPY requirements.txt /usr/src/app/
RUN pip install --no-cache-dir -r /usr/src/app/requirements.txt
复制运行文件
COPY app.py /usr/src/app/
COPY templates/index.html /usr/src/app/templates/
指定容器暴露的端口
EXPOSE 5000
运行应用
CMD [“python”, “/usr/src/app/app.py”]
构建完Dockerfile之后,可以使用Dockerbuild来创建docker镜像。
docker build -t <YOUR_USERNAME>/myfirstapp .
此时Docker镜像已经创建好了,可以使用命令行来试用
docker run -p 8888:5000 --name myfirstapp YOUR_USERNAME/myfirstapp
Docker Swarm
Swarm模式是Docker引擎的编排功能,能够通过一个文件把容器部署在不同的设备上。
创建Swarm
docker swarm init
创建Docker Compose文件
样例文件可以参考: link_to_docker_compose_file