【嵌入式】Docker镜像构建指南:引领应用部署的革新之路_嵌入式容器化部署应用程序(1)

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

1.3.3 线下分发

他人构建好的镜像,可以打包后进行线下分发,他人获取后可以直接导入。

举例子:
可以使用docker save命令将myubuntu镜像导出为myubuntu.tar

sudo docker save -o myubuntu.tar myubuntu

myubuntu.tar镜像可以自由分发,另外一个人拿到myubuntu.tar后就可以使用docker load导入到自己的机器上,然后就可以使用该镜像创建并启动容器了。

sudo docker load -i myubuntu.tar

2. Ubuntu如何安装docker

要在Ubuntu上安装Docker,可以按照以下步骤进行:

  1. 更新apt软件包索引:
sudo apt update

  1. 安装依赖包,以允许apt软件包在HTTPS上使用存储库:
sudo apt install apt-transport-https ca-certificates curl software-properties-common

  1. 添加Docker的官方GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

  1. 添加Docker APT存储库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb\_release -cs) stable"

  1. 再次更新apt软件包索引:
sudo apt update

  1. 确保从Docker存储库而不是默认存储库中安装:
apt-cache policy docker-ce

  1. 最后,安装Docker:
sudo apt install docker-ce

  1. 验证Docker是否正确安装:
sudo systemctl status docker

通过这些步骤,可以在Ubuntu上成功安装Docker,并可以开始使用Docker引擎了。

3. 如何构建docker镜像

要构建Docker镜像,需要编辑一个Dockerfile文件,来描述镜像的构建过程。现以更新java版本为例,讲述整个更新过程。

3.1 组装基础Dockerfile

新建一个空目录,然后创建一个名为Dockerfile的文本文件,将如下内容拷贝进去

FROM ubuntu:1604
MAINTAINER Alex <guoyong.lei@163.com>

WORKDIR /home/admin/workspace

ENTRYPOINT ["/bin/bash"]

3.2 按需修改Dockerfile

将下载好的java运行环境压缩包拷贝到Dockerfile同一目录下。然后我们使用Dockerfile的ADD命令将本地当前目录下的OpenJDK11U-jdk_x64_linux_11.0.12_7.tar.gz解压并拷贝到/opt/目录下,然后用过ENV命令修改PATH环境变量,追加新的java执行目录即可。

对应代码如下所示:

FROM ubuntu:1604
MAINTAINER Alex <guoyong.lei@163.com>

ADD ./OpenJDK11U-jdk_x64_linux_11.0.12_7.tar.gz /opt/
ENV PATH /opt/openjdk-11.0.12_7/bin:$PATH

WORKDIR /home/admin/workspace

ENTRYPOINT ["/bin/bash"]

3.3 编译镜像

Dockerfile编写完成后,使用docker build命令在Dockerfile所在的目录中构建镜像:

$ sudo docker build -f Dockerfile -t ubuntu1604_update_java .

Sending build context to Docker daemon   203 MB
Step 1 : FROM ubuntu:1604
---> 961496ae44f2
Step 2 : MAINTAINER Alex <guoyong.lei@163.com>
---> Using cache
---> ae3210afff6e
Step 3 : ADD ./OpenJDK11U-jdk_x64_linux_11.0.12_7.tar.gz /opt/
---> 7ea4f23aa58e
Removing intermediate container 66d7e8d08a31
Step 4 : ENV PATH /opt/openjdk-11.0.12_7/bin:$PATH
---> Running in 9681ee611e2d
---> 4de8fc80f273
Removing intermediate container 9681ee611e2d
Step 5 : WORKDIR /home/admin/workspace
---> Running in 015127eea321
---> 12d61d78f3fb
Removing intermediate container 015127eea321
Step 6 : ENTRYPOINT /bin/bash
---> Running in cd95f1c5a241
---> 586de0560544
Removing intermediate container cd95f1c5a241
Successfully built 586de0560544

上述命令中,

  • -f Dockerfile 表示使用Dockerfile描述文件来构建镜像
  • -t ubuntu1604_update_java表示为新镜像指定一个名称(在此示例中为ubuntu1604_update_java
  • .表示Dockerfile在当前目录下。

3.4 查看镜像列表和镜像ID

镜像编译成功后,就可以通过docker images命令查看镜像列表了。如下所示,第一个就是我们钢构件成的镜像:

$ sudo docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
ubuntu1604_update_java                                            latest              586de0560544        7 minutes ago       1.701 GB
dev_x86_backup_20211227                                           latest              12173815dc73        9 weeks ago         90.53 GB
dev_x86_backup_20211226                                           latest              14a64e5c857c        9 weeks ago         144.5 GB
ubuntu_1604_build_20211014                                        latest              961496ae44f2        4 months ago        1.376 GB
ubuntu18.04_sifeng                                                latest              4bb2e57d175c        13 months ago       915.7 MB
ubuntu16.04_x64                                                   latest              6a7a6103b47d        3 years ago         14.87 GB

3.5 验证镜像

镜像编译成功之后,可以用个docker run命令来验证。如下所示,执行docker run命令之后,会进入Docker环境,之后自行查看改动是否生效即可。确认完成之后,执行exit命令退出docker环境。

$ sudo docker run -it --rm ubuntu1604_update_java:latest
admin@1d7377478901:~/workspace$
admin@1d7377478901:~/workspace$ ls /opt/
openjdk-11.0.12_7
admin@1d7377478901:~/workspace$
admin@c66458d193aa:~/workspace$ type java
java is /opt/openjdk-11.0.12_7/bin/java
admin@1d7377478901:~/workspace$
admin@1d7377478901:~/workspace$ java --version
openjdk 11.0.12 2021-07-20
OpenJDK Runtime Environment 18.9 (build 11.0.12+7)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7, mixed mode)
admin@1d7377478901:~/workspace$
admin@69bd748cfdc4:~/workspace$ exit
exit

构建镜像的过程中,Docker将执行Dockerfile中指定的每个步骤,包括基础镜像的拉取、文件的复制、环境变量的设置等。最终,我们会获得一个包含指定应用程序和配置的Docker镜像,可以将其推送到Docker Hub或阿里云等镜像仓库中,也可以在本地使用。

4. 如何使用阿里云docker镜像服务

本章,我们以阿里云的Docker镜像服务为例,讲述如何其使用方法,包括平台初始化和镜像创建等操作。

待云端初始化完成并创建镜像之后,我们就可以将上一章中创建的docker镜像上传到阿里云存储下来,以备其它机器拉取使用了。

4.1 创建实例

打开阿里云容器镜像服务制台,新建实例。可按需选择企业版和个人版。下文都以个人版为例进行演示。

4.1.1 创建个人实例

在这里插入图片描述

4.1.2 确认风险

按照页面提示,个人版实例不提供SLA保障且有数量、安全性等限制,不保障安全和稳定,不建议生产业务中使用,以避免影响线上业务。如有需要可选择企业版实例或者其它方案进行存储分发。
在这里插入图片描述

4.1.3 设置密码

该密码在docker login命令登录阿里云Docker服务器时输入,用于docker pull命令下载私有镜像和docker push命令上传镜像时鉴权使用,请务必谨记。
在这里插入图片描述

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

很简单,就是希望能够帮助到想自学提升的朋友。**
[外链图片转存中…(img-ggzYkPMX-1715708715026)]
[外链图片转存中…(img-ajWdJ7X9-1715708715027)]

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值