学习docker第三弹------Docker镜像以及推送拉取镜像到阿里云公有仓库和私有仓库

1 Docker镜像

镜像,是docker的三件套之一(镜像、容器、仓库),是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容。打包好的运行环境就是image镜像文件。

我们只有通过这个镜像文件才能生成Docke容器实例。(就好像Java需要先有一个类,然后才能new一个对象。)

dockers镜像的进一步理解

镜像是一层一层的,称其为分层的镜像。比如我们在pull一个镜像的时候,它就是一层一层进行拉取下载的。

docker pull nginx

在这里插入图片描述

这里就不得不提到 UnionFS(联合文件系统)了,它是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。

就像一个花卷一样,一层一层的卷起来。

docker镜像实际上是由一层一层的文件系统组成的,这种层级的文件系统UnionFS。

在这里插入图片描述
镜像分层最大的一个优点就是共享资源,方便复制迁移,就是为了复用。比如有多个镜像都从相同的 A 镜像构建而来,那么我们的 Docker Host 只需要在磁盘上保存一份 A 镜像即可。

Docker镜像层都是只读的,容器层是可写的。当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫做“镜像层”。
在这里插入图片描述

2 Docker镜像commit操作实例

docker commit 提交容器副本使之成为一个新的镜像
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]

案例内容是ubuntu安装vim

第一步,从Hub上下载ubuntu镜像到本地并运行成功

docker images

第二步,查看默认ubtuntu是否带vim命令

docker run -it ubuntu /bin/bash

在这里插入图片描述
第三步,外网连通情况下,安装vim

apt-get update

在这里插入图片描述

apt-get -y install vim

在这里插入图片描述

vim a.txt

在这里插入图片描述

第四步,安装完成后,commit我们自己的新镜像

docker commit -m="add vim cmd" -a="ada" 镜像ID 镜像名称:版本号

在这里插入图片描述

第五步,启动我们的新镜像并和原来的对比
在这里插入图片描述

3 将本地镜像推送至阿里云

本地镜像ubuntu_vim:1.0
阿里云开发者平台:https://promotion.aliyun.com/ntms/act/kubernetes.html
在这里插入图片描述
选择控制台,进入容器镜像服务
在这里插入图片描述

选择个人实例
在这里插入图片描述

命名空间
在这里插入图片描述

仓库名称
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进入管理界面获得脚本
在这里插入图片描述

将镜像推送到阿里云
在这里插入图片描述
在这里插入图片描述

4 将阿里云镜像下载到本地仓库

直接复制粘贴脚本文件就可以。
在这里插入图片描述
在这里插入图片描述

5 后记

三米粥铺有的店好吃,有的店不好吃!

BB啊,如果我的文档对您有帮助的话,记得帮我点赞赞~

谢谢您~

### 回答1: Docker 镜像启动时执行 SQL 脚本的方法有多种,其中一种常用的方法是使用 Dockerfile 在构建镜像时运行 SQL 脚本。 示例 Dockerfile 如下: ``` # Use an existing image as the base image FROM mysql:8.0 # Set the working directory WORKDIR /docker-entrypoint-initdb.d/ # Copy the SQL script to the working directory COPY script.sql . # Run the SQL script when the container starts CMD ["mysql", "-u", "user", "-p", "password", "database_name", "<", "script.sql"] ``` 然后,你可以使用以下命令构建镜像: ``` docker build -t myimage . ``` 最后,可以使用以下命令启动镜像: ``` docker run --name mycontainer -d myimage ``` 这样,在启动 Docker 容器时,SQL 脚本就会自动执行。 ### 回答2: 在Docker容器中执行SQL脚本可以通过以下步骤实现: 1. 首先,需要确保已经将SQL脚本添加到Docker镜像中。可以通过在Dockfile中使用`COPY`指令将SQL脚本复制到镜像的指定路径中。 2. 然后,在镜像启动时,可以使用`CMD`或`ENTRYPOINT`指令来执行SQL脚本。这两个指令都可以在容器启动时执行命令,只是他们的参数传递方式不同。 3. 如果使用`CMD`指令来执行SQL脚本,需要在Dockerfile中添加如下语句: ``` CMD ["mysql", "-u", "username", "-p", "password", "databasename", "<", "/path/to/sql/script.sql"] ``` 其中,`username`和`password`是数据库的用户名和密码,`databasename`是要执行脚本的数据库名称,`/path/to/sql/script.sql`是SQL脚本的路径。 4. 如果使用`ENTRYPOINT`指令来执行SQL脚本,需要在Dockerfile中添加如下语句: ``` ENTRYPOINT ["mysql", "-u", "username", "-p", "password", "databasename", "<", "/path/to/sql/script.sql"] ``` 同样,`username`和`password`是数据库的用户名和密码,`databasename`是要执行脚本的数据库名称,`/path/to/sql/script.sql`是SQL脚本的路径。 5. 最后,构建Docker镜像并以容器形式运行时,镜像中的SQL脚本将会被执行,将脚本中的SQL语句应用到相应的数据库中。 以上就是使用Docker镜像启动执行SQL脚本的方法。注意,具体的指令和参数可能因使用不同的数据库或操作系统而略有差异,可根据实际情况进行调整。 ### 回答3: 在使用Docker镜像启动时执行SQL脚本,我们可以按照以下步骤进行操作: 1. 创建一个Dockerfile:在项目的根目录下创建一个名为Dockerfile的文件,用于构建Docker镜像。 2. 在Dockerfile中定义基础镜像:使用适合你的应用程序的基础镜像,例如MySQL、PostgreSQL等。在FROM语句中指定基础镜像的名称和版本。 3. 复制SQL脚本到镜像中:使用COPY语句将SQL脚本文件从宿主机复制到新建的镜像中。例如,COPY ./init.sql /docker-entrypoint-initdb.d/。 4. 构建Docker镜像:在命令行中导航到Dockerfile所在的目录,然后运行docker build命令来构建镜像。例如,docker build -t my-database-image:latest .。 5. 运行Docker容器:使用docker run命令在新建的镜像上启动一个容器。例如,docker run -d -p 3306:3306 --name my-database-container my-database-image:latest。 以上步骤将创建一个包含SQL脚本的Docker镜像,并在启动容器时自动执行该脚本。在容器启动后,SQL脚本将被执行,初始化数据库或进行其他必要操作。 使用Docker镜像执行SQL脚本有很多应用场景,例如在启动应用程序时初始化数据库、导入初始数据或在测试环境中重置数据库状态等。这种方法提供了一种快速、可重复和高度可自动化的方式来执行SQL脚本,简化了部署和测试过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值