如何提交docker镜像到DockerHub
发布网友
发布时间:2022-04-21 04:19
我来回答
共1个回答
热心网友
时间:2022-06-17 22:59
初次安装部署好docker后,大多数镜像可以从DockerHub 提取,但是大多数人都希望自己可以完全自定义一个镜像,那么这里需要一个第三方工具 febootstrap
epel6的源提供febootstrap的RPM包
yum install docker-io febootstrap -y
service docker start
chkconfig docker --level35 on
复制代码
制作CentOS6.6镜像目录
febootstrap -i yum -i iputils -i iproute -i bash -i vim-minimal -i coreutils -i tar -i net-tools centos6 base <a href="" target="_blank"></a> -u <a href="" target="_blank"></a>
复制代码
-i 表示镜像里面安装的RPM包(包括一些人为有必要的软件包)
centos6 表示镜像的版本说明
base 表示生成的镜像目录
后面之后了系统安装源和更新源为USTC
安装执行后,会开始一系列的RPM包下载安装,过程与yum类似,安装完成后当前目录会多了base目录,里面就是一个镜像的系统文件
进入base目录等于进入镜像的根目录
[root@image ~]# cd base/
[root@image base]# ls
bin boot dev etc home lib lib64 media mnt opt proc root sbin selinux srv sys tmp usr var
复制代码
可以像一般的系统文件一样先做一些修改配置,例如配置第三方yum源等等
把base目录把所有文件打包成二进制文件后导入docker创建为镜像
cd ~/root/base/ && tar -c . | docker import - centos6:base
复制代码
docker images 可以查看镜像的信息
一个基本centos镜像创建完毕,下面再利用Dokcerfile制作mysql镜像
cat Dockerfile
FROM centos6:base
MAINTAINER Lion "lioncui@163.com"
VOLUME /var/lib/mysql
RUN yum install mysql-server mysql -y
RUN echo -ne "NETWORKING=yes\\nHOSTNAME=mysql" > /etc/sysconfig/network
RUN echo -ne "bind-address = 0.0.0.0\\ndefault-storage-engine=innodb\\ninnodb_file_per_table\\n\
collation-server=utf8_general_ci\\ninit-connect='SET NAMES utf8'\\ncharacter-set-server = utf8" > insert
RUN sed -i "/user=mysql/r insert" /etc/my.cnf && rm -f insert
RUN echo -ne "/usr/bin/mysql_install_db\\n/usr/bin/mysqld_safe" >> /opt/mysql_start
RUN chmod 777 /opt/mysql_start
ENV PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:
WORKDIR /opt
EXPOSE 3306
CMD /bin/sh -c mysql_start
复制代码
FROM 声明以centos:base镜像为基础
MAINTAINER 声明镜像的维护者信息
VOLUME 挂载本地目录到容器里/var/lib/mysql目录(这是mysql默认的数据保存目录)
由于我希望数据可以持久化防止因为容器误删除而丢失,所以映射到宿主本地目录
RUN 在镜像中执行安装mysql
在新镜像中写入HOSTNAME信息,因为mysql启动过程需要network文件
在my.cnf配置文件插入一些修改配置
创建启动脚本
声明环境变量
制定默认工作目录
EXPOSE 声明容器需要暴露的端口号
CMD 是指镜像生成容器后自动执行的命令,类似docker exec,这里是自动启动mysql服务
根据Dockerfile创建mysql服务镜像
docker build --rm=true -t mysql:frist .
查看镜像的树状关系可以发现,mysql:frist是以centos:base为父镜像
如何将自己电脑上的docker镜像上传到Docker Hub?
首先,检查本地所有镜像:使用Docker命令查看。接着,为镜像打标签:使用SOURCE_IMAGE[:TAG]和TARGET_IMAGE[:TAG]命令,例如,为现有镜像添加新标签。然后,将镜像上传到Docker Hub:通过`docker pull`命令,并利用Docker Hub的5GB免费存储空间(若超过,考虑将镜像存到GitHub)。为了在GitHub上存储镜像,...
Dockcer上传hub和配置国内镜像源
1. 在Linux环境下,首先确保你已在Docker Hub上注册并拥有上传权限。通过命令行终端登录,使用`docker login`命令输入账号信息。然后,使用`docker images`查看镜像列表,为要上传的镜像设置hub标签,例如:`docker tag your-docker-username/your-image your-image:tag`最后,执行上传操作:`docker push y...
如何提交docker镜像到DockerHub
可以像一般的系统文件一样先做一些修改配置,例如配置第三方yum源等等 把base目录把所有文件打包成二进制文件后导入docker创建为镜像 cd ~/root/base/ && tar -c . | docker import - centos6:base 复制代码 docker images 可以查看镜像的信息 一个基本centos镜像创建完毕,下面再利用Dokcerfile制作mysql...
docker学习记录-镜像容器转移
还有一种方式是直接进行容器转移,而不需要通过镜像,我们将在“docker 容器转移”一节中进行详细说明。关于镜像的更新,我们可以在原始镜像上创建一个容器,对容器进行改动,然后提交一个副本。提交后的镜像即为最新版。那么,如何将本地镜像 push 到 docker hub 上呢?这个过程与 github 类似,我们需要...
【docker常用命令系列】Docker push语法用法示例详解
使用docker image push命令,结合Docker Hub或自托管注册表的URL,即可将镜像上传至指定位置。在操作过程中,需注意镜像和标签名称的规范,并确保使用docker login管理注册表凭据。在推送镜像时,用户可通过按CTRL-c终止进程,以避免潜在的超时问题。在推送过程中,Docker守护程序会显示进度条和未压缩大小,但...
如何创建自己的docker image并上传到DockerHub上
Dockerfile 中 ADD 和 COPY 命令不能使用绝对路径,只能使用相对路径。这点在官方文档中说的比较清楚 如果不是非要把文件 build 到 image里,可以通过 run container 的时候通过 -v 参数将 host 文件或目录加载/共享到 container 里。
Pytorch Docker镜像构建教程(不同系统、CUDA、Python版本)
执行构建 Github自动构建 借助Github的actions,可以在Github服务器上完成构建,并自动推送至 DockerHub,避免由于本地网络等原因造成的构建失败。上述脚本会自动生成yml文件,提交至main分支后会自动触发构建。大家如果有需要的镜像版本,可以提交issue或者把上述文件提交pull request,我merge后就会触发构建。
使用cloudflare(CF)搭建dockerhub代理
搭建完成后,接下来是更换Docker源的关键步骤。通过调整Docker配置,将源切换至我们自建的代理,即可实现对Docker Hub的高效访问。具体操作方法,可参考另一篇文章进行详细学习。在搭建过程中,需要注意以下几点:确保网络环境稳定,以避免部署过程中出现中断;合理规划域名解析,以获得更快的访问速度;同时,...
Docker镜像国内拉取方法(更新到2024.6.19)
接下来,编辑.github/workflows/sync-images-dockerHub-example.yml文件,替换源镜像地址和命名空间,提交到GitHub。等待1-2分钟后,你的镜像应在阿里云仓库中可见。本地需要拉取镜像时,可以直接操作阿里云的镜像仓库,通过tag命令调整镜像标签。至此,Docker镜像的下载和本地使用已经完成。
「Docker」 - 镜像仓库
获取镜像最常用的方式是从仓库中拉取,这通常通过执行docker pull命令来实现。只需提供镜像仓库名,Docker就会开始从仓库中拉取所需的镜像。在控制台中,可以追踪镜像拉取的进度,Docker会逐层拉取镜像,如果本地已存在相同的层,Docker会直接使用本地内容,无需重复下载。Docker Hub作为Docker官方的中央...