目 录CONTENT

文章目录

如何制作自己的docker镜像并上传到DockerHub

yyzq
2023-04-05 / 0 评论 / 6 点赞 / 1,631 阅读 / 852 字

前言

我们大部分人都是用别人的Docker镜像文件,我们自己 也可以制作镜像文件
制作自己的Docker镜像有以下几个优点:

精确掌控容器环境:

制作自己的Docker镜像可以提供精确控制容器环境的能力。可以针对项目需求来定制化配置所需软件包、版本等信息,确保应用程序能够稳定运行。

扩展性和可维护性:

通过制作自己的Docker镜像,可以更方便地扩展和维护应用程序。因为该Docker镜像已经包含了应用程序所需的环境配置,所以只需拉取镜像即可运行容器并且更容易地进行扩展和维护。

可移植性和复用性:

由于Docker镜像具有可移植性,即可在不同的机器、操作系统、云厂商等环境下使用。在多个项目中出现相同需求时,可以制作通用的Docker镜像,提高代码复用性。

提高部署效率:

Docker 镜像以“存储引擎”模式构建,每一层都是只读的。因此,在创建新的容器时直接重用现有的层,而不是每次重新构建。这可以大大提高Docker镜像的构建和部署效率,减少了预先配置环境的时间和人工成本。

总之:

制作自己的 Docker 镜像,能够提高应用程序的可靠性,扩展性和可移植性,加快部署和减少维护成本,因此,在应用程序开发和管理过程中,制作自己的Docker镜像是非常有必要的。

接下来我们以制作一个nginx服务为例进行演示

一、注册Docker官方的账号

在以下地址注册
https://hub.docker.com/

注册好以后验证邮箱完成注册

如我的Dockerhub账号信息是

账号:ywsj    
密码:****
邮箱:****

二、创建Dockerfile文件

在自己的服务器
登录自己的root用户
创建一个新的目录newfile,并进入此目录

mkdir newfile ;cd newfile  

由于是nginx服务需要创建一个html目录用来存放网页文件

mkdir html  

新建一个Dockerfile 文件

vim Dockerfile   

写入以下代码,并保存退出

FROM nginx:latest   
COPY ./html /usr/share/nginx/html  
EXPOSE 80   

#用最新版的nginx
#将html目录映射到nginx容器中的/usr/share/nginx/html
#容器是80端口

三、构建项目

构建镜像其中 .是当前目录,ywsj/ywsj-nginx-web是自定义镜像名称

docker build -t ywsj/ywsj-nginx-web . #名称最好是“hub账号名/项目名”方便推送到公共库

查看本地生成的镜像是ywsj/ywsj-nginx-web

docker images 

image-1680673991682

四、推送到DockerHub公共仓库

需要先执行 docker login 登录

docker login  #执行此命令会提示输入用户名密码

登录成功有提示
image-1680674589362

推送本地镜像ywsj/ywsj-nginx-web 到公共仓库

docker push ywsj/ywsj-nginx-web  

image-1680674799716

五、测试拉取自己的镜像

先删除本地的Docker镜像

docker rmi -f ywsj/ywsj-nginx-web 

再次拉取自己的镜像

docker pull ywsj/ywsj-nginx-web  

再次查看已经拉取成功

docker images
6

评论区