首先明确docker中的几个概念:
1、镜像(image)
镜像是一个轻量级的可执行的文件包,包括运行软件所需的一切环境,docker镜像是docker容器运行时的只读模板,每个镜像由一系列的层组成
2、容器(container)
容器是用来运行程序的,每一个容器实际上就是一个实例化的镜像文件,每个容器之间都是相互隔离的
3、仓库
仓库是用来用来保存镜像的,类似于GitHub中的仓库,仓库分为共有和私有,共有仓库中由各种镜像
一、构建docker应用程序
1、创建一个空文件夹,用来存放你的项目,此处举例,mkdir test
2、进入到此文件夹中,创建两个必要文件,requirements.txt和Dockerfile,requirements.txt用来写运行程序所必要的包,Dockerfile将定义容器内部环境,在Dockerfile中写入以下代码:
# Use an official Python runtime as a parent image
FROM python:2.7-slim
# Set the working directory to /app
WORKDIR /app
# Copy the current directory contents into the container at /app
ADD . /app
# Install any needed packages specified in requirements.txt
RUN pip install -r requirements.txt
# Make port 80 available to the world outside this container
EXPOSE 80
# Define environment variable
ENV NAME World
# Run app.py when the container launches
CMD ["python", "app.py"]
3、创建一个镜像
docker build -t friendlyhello .
可以看到docker在下载各种包
4、运行应用程序
docker run -p 4000:80 friendlyhello 即可
这里docker默认的是80端口,这条命令将端口改成4000端口
此条命令之后你的应用就运行起来了
5、在浏览器中输入http://localhost:4000即可访问你的网页
6、结束后CTRL+C结束
7、后台运行程序
docker run -d -p 4000:80 friendlyhello
8、docker container ls 可以查看容器ID
9、docker stop id可以结束容器
二、发布docker
1、首先登陆docker账户docker login
2、标记镜像
docker tag image username/repository:tag
tag是可选的,但是建议选有意义的比如版本等信息
3、最后发布镜像
docker push username/repository:tag
发布之后这个镜像就是公开的了,任何人都可以下载
4、现在你可以在任何及其上使用
docker run -p 4000:80 username/repository:tag
命令来运行你的程序
5、