当前位置:首页 » 《关注互联网》 » 正文

docker--制作镜像详细教程_yezi59的博客

19 人参与  2021年08月19日 08:43  分类 : 《关注互联网》  评论

点击全文阅读


文章目录

  • 一、什么是Dockerfile?
  • 二、制作镜像步骤
    • 1.新建一个空目录
    • 2.新建Dockerfile
    • 3.新建requirements.txt文件
    • 4.新建app.py文件
    • 5.生成镜像,需要一点时间,因为下载安装很多东西
    • 6.查看生成的镜像
    • 8.下载redis的镜像
    • 9.运行容器
  • 总结


一、什么是Dockerfile?

制作一个自己的docker镜像,此文是在其他镜像的基础上为之扩展,Dockerfile是制作镜像的配方。Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。

二、制作镜像步骤

1.新建一个空目录

本文是centos8系统,代码如下(示例):

[root@centos8-docker /]# mkdir mydocker1
[root@centos8-docker /]# cd mydocker1

2.新建Dockerfile

代码如下(示例):

[root@centos8-docker mydocker1]# vim Dockerfile
[root@centos8-docker mydocker1]# cat Dockerfile
FROM python:3.9-slim
#下载一个python3.9的镜像模板,已经有操作系统和安装好python3.9
WORKDIR /app
#在docker容器里的工作目录-->进入docker容器的时候,所在的目录
ADD . /app
# 复制当前目录下的所有的内容到容器里的/app目录下
VOLUME ["/data_flask"]
#指定数据卷
RUN pip install --trusted-host pypi.python.org -r requirements.txt
#安装requirements.txt里的库,只是在制作镜像的时候运行
EXPOSE 80
#EXPOSE 80  定义环境变量
ENV NAME World
#定义name变量
ENV AUTHOR yejing
#定义author变量
CMD ["python","app.py"]
#容器启动的时候会运行

3.新建requirements.txt文件

[root@centos8-docker mydocker1]# vim requirements.txt
[root@centos8-docker mydocker1]# cat requirements.txt 
Flask
Redis
#下载我们所需要的flask框架和redis数据库

4.新建app.py文件

[root@centos8-docker mydocker1]# vim app.py
[root@centos8-docker mydocker1]# cat app.py

from flask import Flask
from redis import Redis, RedisError
import os
import socket

# Connect to Redis
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)

app = Flask(__name__)

@app.route("/")
def hello():
    try:
        visits = redis.incr("counter")
    except RedisError:
        visits = "<i>cannot connect to Redis, counter disabled</i>"

    html = "<h3>Hello {name}!</h3>" \
           "<b>Hostname:</b> {hostname}<br/>" \
           "<b>Visits:</b> {visits}"
    return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80)
[root@centos8-docker mydocker1]# ls
app.py  Dockerfile  requirements.txt
#这个目录下有这三个文件

5.生成镜像,需要一点时间,因为下载安装很多东西

[root@centos8-docker mydocker1]# docker build -t sc_friendlyhello_2 .
#按照当前路径下的配置文件,生成一个名字为sc_friendlyhello_2的镜像

在这里插入图片描述
出现上图即成功生成此镜像

6.查看生成的镜像

[root@centos8-docker mydocker1]# docker images

在这里插入图片描述

8.下载redis的镜像

[root@centos8-docker mydocker1]# docker pull redis

9.运行容器

[root@centos8-docker mydocker1]# docker run -d -p 6677:80 --name sc_hello_2 sc_friendlyhello_2
[root@centos8-docker mydocker1]# docker ps
#查看正在运行的容器

在这里插入图片描述
用浏览器访问自己虚拟机的ip地址加端口号,出现下图即可,我的是192.168.31.31:6677
在这里插入图片描述
因为redis容器没有启动,所以我们启动一个redis容器链接到现在的这个容器。

[root@centos8-docker mydocker1]# docker run -d -p 5644:6379 --name sc_redis_2 redis
#创建redis容器
[root@centos8-docker mydocker1]# [root@centos8-docker mydocker1]# docker run -d -p 5647:80 --name sc_hello_4 --link sc_redis_2:redis sc_friendlyhello_2

#创建一个容器链接到redis数据库容器

再用浏览器访问192.168.31.31:5647
在这里插入图片描述
成功显示


总结

至此,成功制作镜像!


点击全文阅读


本文链接:http://zhangshiyu.com/post/25722.html

镜像  容器  新建  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1