博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dockerfile
阅读量:6968 次
发布时间:2019-06-27

本文共 2901 字,大约阅读时间需要 9 分钟。

1.准备一个flask代码,准备python代码

from flask import Flask
app=Flask(__name__)
@app.route('/')
def hello():
return "hello docker,i am sbwueiqi, i am in s14 "
if __name__=="__main__":
app.run(host='0.0.0.0',port=8080)

2.准备Dockerfile,准备好所有需要的文件

[root@node1 /data/mydocker 10:33:53]#ls
CentOS-Base.repo Dockerfile epel.repo myflask.p

cat Dockerfile

FROM centos
LABEL maintainer="Chao Yu<yc_uuu@163.com>"
ADD CentOS-Base.repo /etc/yum.repos.d/
ADD epel.repo /etc/yum.repos.d/
RUN yum clean all
RUN yum install python-pip -y
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask
COPY myflask.py /app/
WORKDIR /app
EXPOSE 8080
CMD ["python","myflask.py"]
1.引入一个centos镜像,为基础镜像
2.作者注释信息
3.添加本地的两个yum文件,到容器的/etc/yum.repos.d/底下
4.清空yum缓存
5.yum安装pip工具
6.pip安装flask模块,指定清华源
7.拷贝本地的flask代码,到容器的/app/目录下
8.切换工作目录,到/app底下
9.暴露容器的8080端口,然后在运行镜像时候,加上-p参数,指定端口映射
10.执行命令,运行flask

3.构建docker镜像文件

docker build -t yuchao163/s14-flask-docker .
#构建当前目录的Dcokerfile,然后构建出一个名为yuchao163/s14-flask-docker 这个的镜像文件
-t tag参数,给镜像加上标记名
dockerhub账户名:yuchao163

dockerhub账户名/镜像名 #是为了后面讲docker镜像,推送到dockerhub

4.查看镜像是否构建完成

docker images

 

 

5.运行这个镜像文件,产生容器实例

 

docker run -p 9000:8080 -d 43d

-p 映射9000端口到容器的8080
-d 后台运行
43d 镜像id

6.查看已经运行的docker实例

docker ps

 

 

7.学习dockerhub,发布自己的docker镜像

 

1.我可以先下载其他人的docker镜像

docker pull yuchao163/hello-world-docker
2.上传自己的docker镜像
docker login #登录自己的docker hub账号 ,输入密码
#docker就会有你自己的dockerhub账号信息 yuchao163
3.更改docker镜像的名字,也就是加上一个tag标记
docker tag s14/centos-vim yuchao163/s14-centos-vim
docker tag 现有镜像名字 dockerhub账户名/新的镜像名
4.登录后可以推送镜像文件,此时推送给的是自己的yuchao163账号仓库下
docker push yuchao163/s14-hello-docker
5.登录https://hub.docker.com/查看自己推送的公网镜像

 

8.构建公司私有docker仓库,其实就是搭建一个api服务器,通过api可以下载镜像

1.下载docker官方提供的私有仓库镜像
docker pull registry
2.查看镜像
docker images
3.启动一个私有仓库容器
docker run -d \
-p 5000:5000 \
-v /opt/data/registry:/var/lib/registry \
registry
4.此时可以检查容器进程
docker ps
5.此时私有仓库就打开了5000端口,通过端口映射,访问宿主机的5000端口,查看是否通信
yum install telnet -y
telnet 127.0.0.1 5000 #检测5000端口是否通信
6.修改本地镜像的tag标签,标注我要往哪push镜像
docker tag docker.io/hello-world 192.168.12.96:5000/s14-hello
7.修改docker配置,允许非安全的传输方式
1.vim /etc/docker/daemon.json,写入信息,私有仓库地址,都得改成自己的
{"registry-mirrors": ["http://95822026.m.daocloud.io"],
"insecure-registries":["192.168.12.96:5000"]
}
2.修改docker.server
vim /lib/systemd/system/docker.service
#写入如下信息,请在[service]中写入
[Service]
EnvironmentFile=/etc/docker/daemon.json

8.重启docker服务,使得生效

systemctl daemon-reload #重新加载docker配置文件
systemctl restart docker #重启docker服务

9. #重启docker服务,会停止容器,因此要再次启动

docker ps -a
docker start b23bcfe42e80 #启动这个私有仓库容器

 

10.推送本地镜像到 私有仓库 192.168.12.96:5000

docker push 192.168.12.96:5000/s14-hello

 

11.此时访问api接口,查看私有仓库的数据

http://192.168.12.96:5000/v2/_catalog

docker的数据集挂载功能
-v 参数 挂载宿主机的文件:容器内的文件夹
-v /opt/data:/opt/s14/
docker run -p 8000:8080 -v /opt/s14:/opt/data/ -d 43d
启动容器,通过-v参数挂载
挂载容器内的/opt/data/文件夹,其实访问的是宿主机的/opt/s14/

-p 7000:5000

转载于:https://www.cnblogs.com/du-jun/p/10790883.html

你可能感兴趣的文章
Android属性动画完全解析(上),初识属性动画的基本用法
查看>>
Android JNI -基础篇
查看>>
poi设置excel表格边框、字体等
查看>>
喷默打印机安装
查看>>
[Android Pro] 完美Android Cursor使用例子(Android数据库操作)
查看>>
特征选择和特征理解 (转)
查看>>
数据库 Oracle数据库对象一
查看>>
2016年终总结
查看>>
Jenkins 安装及使用
查看>>
ARGB_8888
查看>>
Java反射机制详解
查看>>
很好的DP思路,字符串比较次数
查看>>
delegate和event的区别 (zz)
查看>>
ActiveMQ HelloWorld入门
查看>>
江西理工大学南昌校区cool code竞赛
查看>>
使用Java开发微信公众平台(二)——消息的接收与响应
查看>>
tomcat和nginx的使用
查看>>
预处理素数(个人模版)
查看>>
[转]Oracle ROWNUM用法和分页查询总结
查看>>
zset类型以及其操作
查看>>