docker 的升级使用

docker运行一个flask web应用,暴露端口供给windows使用
1、首先我们要先下载系统镜像 centos, 然后启动这个镜像生成容器

2、然后进入这个镜像内安装python2的软件管理工具 easy_install

3、安装flask

4、编写好flask脚本

5、退出容器产生容器id记录

6.提交此容器记录,构建镜像

7.查看镜像

8.运行flask_web镜像,暴露端口访问

9.此时在windows浏览器访问 7000端口的 flask应用

复制代码
1.docker run -it centos
2. 安装 easy_install 命令,python2软件包管理
yum install python-setuptools
3.安装flask
easy_install flask
4.编写好flask web脚本
    cd /home # 脚本写在home下
    然后yum install vim -y 安装vim 编辑器
    touch flask_web.py # 建立一个脚本文件编辑脚本

    from flask import Flask 

    app = Flask(__name__)
      @app.route('/')
      def index():
            return 'Hello This is docker'

    #此脚本当做模块导入时候,__main__里代码不执行
    #当做脚本文件直接运行的时候,执行__main__代码
    if __name__ == '__main__':
       app.run(host='0.0.0.0',port=9000)
       
5.退出容器,产生容器id记录
    exit 
6.提交此容器记录,构建镜像(找到你的容器内的id你进入的时候会有显示的)
    docker commit 976  s12/flask_web
7.查看镜像
    docker images 
8.运行flask_web镜像,暴露端口访问   启动的时候要指定python解释器  
    docker run -d -p 7000:9000  s12/flask-web python /home/flask-web.py
9.此时在windows浏览器访问 7000端口的 flask应用

复制代码

然互docker ps查看是否启动了

在启动的时候你要指定你的镜像 然后指定python解释器去启动这个镜像中的具体的文件 caicai/flask-web 是你的打包的镜像然后指定python去启动中的具体的python文件

接着访问指定的7000端口就能看到内容了

docker hub
docker hub 顾名思义就是一个类似于我们常用的github存储代码一样这个是存储我们的 生成的容器的

首先我们打包的镜像 直接推送是不可以的 需要先起个tag名字才能进行推送的

打包:

docker tag 镜像名字 你的dockerhub名字/起的tag名字

docker tag caicai/flask-web zyltry/caicai # 给我的caicai/flask-web镜像在zyltry的dockerhub下起个caicai的tag

然后直接docker images 然后把你起的tag生成的镜像名字推上去

直接docker push + 镜像名字

然后 就可以在你的 docker hub上看到你提交的信息了

复制代码
发布docker image到仓库
第一种,docker hub公有镜像发布

复制代码
复制代码
1.docker提供了一个类似于github的仓库dockerhub,
网址https://hub.docker.com/需要注册使用
2.注册docker id后,在linux中登录dockerhub
docker login

注意要保证image的tag是账户名,如果镜像名字不对,需要改一下tag
docker tag chaoyu/centos-vim zyltry163/centos-vim
语法是: docker tag 镜像名 docker hub名字/仓库名

3.推送docker image到dockerhub
docker push 镜像名字:latest
4.在dockerhub中检查镜像
https://hub.docker.com/
5.删除本地镜像,测试下载pull 镜像文件
docker pull 镜像名
复制代码

私有仓库:

但是这种镜像仓库是公开的,其他人也是可以下载,并不安全,因此还可以使用docker registry官方提供的私有仓库

首先你要对你的要私有化的镜像 进行tag的添加 不添加是无法进行上传的

复制代码
1.官方提供的私有仓库docker registry用法
https://yeasy.gitbooks.io/docker_practice/repository/registry.html
2.一条命令下载registry镜像并且启动私有仓库容器
私有仓库会被创建在容器的/var/lib/registry下,因此通过-v参数将镜像文件存储到本地的/opt/data/registry下
端口映射容器中的5000端口到宿主机的5000端口
docker run -d
-p 5000:5000
-v /opt/data/registry:/var/lib/registry
registry

检查启动的registry容器
docker ps
4.测试连接容器
telnet 192.168.119.10 5000
5.修改镜像tag,以docker registry的地址端口开头
docker tag hello-world:latest 192.168.119.10:5000/hello-world:latest
6.查看docker镜像,找到registry的镜像
docker images
7.Docker 默认不允许非 HTTPS 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,这里必须写正确json数据
[root@master /]# cat /etc/docker/daemon.json
{“registry-mirrors”: [“http://95822026.m.daocloud.io”],
“insecure-registries”:[“192.168.119.10:5000”]
}

写入到docker服务中,写入到[Service]配置块中,加载此配置文件
[root@master home]# grep ‘EnvironmentFile=/etc/docker/daemon.json’ /lib/systemd/system/docker.service如果没有就对下面的进行添加信息

编辑docker 配置让他加载你的配置信息 :vim /lib/systemd/system/docker.service
           添加:EnvironmentFile=/etc/docker/daemon.json
8.修改了docker配置文件,重新加载docker
systemctl daemon-reload

9.重启docker
systemctl restart docker
10.重启了docker,刚才的registry容器进程挂掉了,因此重新启动它
docker ps -a
docker start 容器id
11.推送本地镜像
docker push 192.168.119.10:5000/hello-world

12.由于docker registry没有web节目,但是提供了API数据
官网教程:https://docs.docker.com/registry/spec/api/#listing-repositories

curl http://192.168.119.10:5000/v2/_catalog

或者浏览器访问http://192.168.119.10:5000/v2/_catalog
13.删除本地镜像,从私有仓库中下载
docker pull 192.168.119.10:5000/hello-world
复制代码

首先 先对你的 要私有的镜像进行tag起名

docker +选择的镜像名 tag 你的ip和规定的端口号/起的标签名

然后你还需要修改一个配置因为 Docker 默认不允许非 HTTPS 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,这里必须写正确json数据

vim /etc/docker/daemon.json

然后

grep ‘EnvironmentFile=/etc/docker/daemon.json’ /lib/systemd/system/docker.service

如果没反应就代表没有

然后编辑 /lib/systemd/system/docker.service

vim /lib/systemd/system/docker.service

把信息:加入到service中 让你的docker加载这个文件
EnvironmentFile=/etc/docker/daemon.json

然后重新加载 重启你的docker

[root@VM_0_9_centos ~]# systemctl daemon-reload
[root@VM_0_9_centos ~]# systemctl restart docker

然后找到你的刚起启动的rgister进程启动因为重新加载挂了

docker ps -a

重启register容器

docker start +容器id

然后你用浏览器访问

或者浏览器访问http://ip地址:5000/v2/_catalog

下面docker push 你刚才建立的私有仓库的tag

再访问你的界面就有了

也可以从你的私有仓库下载镜像了

从私有仓库中下载
docker pull +私有的镜像

从私有仓库中下载
docker pull 192.168.119.10:5000/hello-world

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lovely_red_scarf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值