1.镜像和容器
Docker把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。
image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。
2.构建flask项目
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return 'hello flask & docker'
if __name__ == '__main__':
app.run(debug=True)
3.导出requirements
gunicorn
gevent
flask
4.gunicorn配置文件
workers = 2
worker_class = "gevent"
bind = "0.0.0.0:5000"
5.编写Dockerfile
FROM python:2.7
WORKDIR /home/user_00/houyuming
COPY requirements.txt ./
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
COPY . .
CMD ["gunicorn", "app:app", "-c", "./gconf.py"]
6.构建image
docker build -t 'hope' .
6.查看image文件
docker image ls
docker images
7.删除image
docker rmi [imageID]
8.上传image文件到仓库
sudo docker tag imageID 地址/项目名:版本号
sudo docker push 地址/项目名:版本号
9.拉取image文件
docker image pull library/hello-world
10.运行容器
docker container run hello-world
11.查看本机容器
1)列出本机正在运行的容器
docker container ls
2)列出本机所有容器,包括终止运行的容器
docker container ls --all
12.停止运行的容器
docker container kill [containerID]
docker container stop [containerID]
13.删除容器
docker container rm [containerID]
14.实际构建过程
sudo docker build -t 'testflask' .
sudo docker tag 3f0903cad875 reg.yingzhongtong.com/docker-public/qa/testflask:1
sudo docker push reg.yingzhongtong.com/docker-public/qa/testflask:1
docker image pull reg.yingzhongtong.com/docker-public/qa/testflask:1
docker run -it --rm -p 5000:5000 reg.yingzhongtong.com/docker-public/qa/testflask:1
15.其他常用命令
docker container exec -it 5f0903cadwer /bin/bash
docker container start [containerID]
docker container logs [containerID]
docker container cp [containID]:[/path/to/file] .
16.docker, kubernetes(k8s),rancher关系
Docker是码头工人,K8S是舵手,Rancher是农场主,一下子豁然开朗~~~
16.安装rancher
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:stable