Docker 学习笔记
来源:互联网 发布:物品寄存服务 知乎 编辑:程序博客网 时间:2024/06/03 16:04
首先明确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 imageFROM python:2.7-slim# Set the working directory to /appWORKDIR /app# Copy the current directory contents into the container at /appADD . /app# Install any needed packages specified in requirements.txtRUN pip install -r requirements.txt# Make port 80 available to the world outside this containerEXPOSE 80# Define environment variableENV NAME World# Run app.py when the container launchesCMD ["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、
- Docker学习笔记-Docker入门
- Docker学习笔记-Docker容器
- Docker学习笔记-Docker端口映射
- Docker学习笔记--Docker常用命令
- Docker学习笔记-Docker端口映射
- Docker学习笔记-Docker端口映射
- Docker学习笔记-Docker端口映射
- Docker 网络学习笔记
- docker学习笔记
- docker 学习笔记
- Docker学习笔记1
- openstack学习笔记----Docker
- Docker学习笔记
- Docker学习笔记(1)
- docker学习笔记1
- docker学习笔记
- Docker学习笔记之一
- docker 学习笔记1
- ELK中filebeat的使用
- [python]数组语法相关
- 如何用 JavaScript 控制 Arduino?
- C语言入门参考(四)
- QNX驱动开发—APP应用与resource manger的交互通信,进程间通信
- Docker 学习笔记
- js的内置对象
- AssetBundle使用,卸载,校验
- 九度OJ-题目1502:最大值最小化
- 计算广告资料汇总
- 分段低次插值
- GraphQL分享
- Nginx安装-让文件服务器fastdfs提供有web方式的上传下载功能
- 数据库的复合主键、多主键