alpine linux apt get,Docker微容器之Alpine Linux 初体验

0x00 前言

Alpine Linux是一个面向安全的轻型的Linux发行版,基于Alpine Linux的超小型Docker镜像,大小只有5MB,并且可以访问比其他基于BusyBox的镜像更完整的包存储库。Alpine Linux采用了 musl libc和busybox以减小系统的体积和运行时资源消耗,由于小巧、功能完备,非常适合用于作为容器的基础镜像。

Alpine Linux有以下特点:

小巧

Alpine Linux是围绕musl libc和busybox构建的。这使得它比传统的GNU / Linux发行版更小,资源效率更高。容器不需要超过8 MB,最小的磁盘安装需要大约130 MB的存储空间。不仅可以获得完全成熟的Linux环境,还可以从存储库中获得大量的软件包。

二进制包被稀释和拆分,可以更好地控制安装的内容,从而使环境尽可能小而有效。

简单

Alpine Linux是一个非常简单的发行版,它会尽量避免使用。它使用自己的包管理器名为apk,OpenRC init系统,提供了一个简单,清晰的Linux环境。然后,您可以添加项目所需的软件包,无论是构建iSCSI存储控制器,薄薄的邮件服务器容器,还是坚如磐石的嵌入式交换机,没有别的办法阻碍。

安全

Alpine Linux的设计考虑了安全性。内核使用grsecurity / PaX的非官方端口进行修补,所有userland二进制文件都编译为具有堆栈粉碎保护的位置独立可执行文件(PIE)。这些主动安全功能可防止利用整个类的零日漏洞和其他漏洞。

0x01 镜像源

1.2 国内镜像源:

1.3 配置软件源

# vi /etc/apk/repositories

# 添加自己要配置的源,然后保存退出

http://dl-cdn.alpinelinux.org/alpine/

http://nl.alpinelinux.org/alpine/

http://uk.alpinelinux.org/alpine

http://dl-2.alpinelinux.org/alpine/

0x02 apk软件包管理

介绍

alpine提供了比较好用的软件包管理工具apk,通过该命令可以下载、删除、升级软件等,但是apk和apt-get以及yum语法上还是有区别的。

命令

通过apk –help可以查看apk有哪些命令

163292481_1_20190610040410940

命令用法–以nginx为例

2.1 升级当前软件包

apk update 更新本地镜像源

apk upgrade 升级所有已安装的软件包,一般包括内核

apk add –upgrade nginx 升级指定软件包

2.2 查询软件包的信息

apk info 列出已经安装的软件包

apk info nginx 显示软件包的信息

apk info -a nginx 显示软件包完整的信息

2.3 搜索软件包

apk search 查找所有可用软件包

apk search -v 所以可用软件包及其描述内容

apk search -v ‘nginx’ 通过软件包名称查找软件包

apk search -v -d ‘nginx’ 通过描述文件查找特定的软件包

2.4 安装软件包

apk add –no-cache nginx

2.5 卸载并删除软件包

apk del nginx

0x03 OpenRC init系统

在类Unix系统上,OpenRC是一个基于依赖的init。由于0.25 OpenRC包含openrc-init,它可以替换/ sbin/init,但init程序的默认提供程序是SysVinit for OpenRC。与Linux一样,OpenRC也可用于多个BSD系统。

OpenRC是TrueOS,Gentoo,Alpine Linux,Parabola GNU / Linux-libre,Artix Linux和其他类似unix 系统的默认初始化系统,而其他一些像Devuan则提供它作为选项

3.1 openrc的安装

apk add --no-cache openrc

3.2 rc-update - 不同运行级增加或者删除服务

rc-update add nginx 增加一个服务

rc-update del nginx 删除一个服务

3.3 rc-status - 运行级的状态管理

rc-status 查看默认运行级别的状态

rc-status -a 查看所有运行级别的状态

3.4 rc-service - 管理服务的状态

rc-service nginx start 启动一个服务

rc-service nginx stop 停止一个服务

rc-service nginx restart 重启一个服务

3.5 openrc - 管理不同的运行级

Alpine Linux可用的运行级

default

sysinit

boot

single

reboot

shutdown

3.5 关机重启指令 - 在容器中试了好像没反应

reboot 重启系统,类似于shutdown -r now。

halt 关机,类似于shutdown -h now。

poweroff 关机

0x04 安装nginx

4.1 安装nginx软件并更新

apk –update add –no-cache nginx

4.2 启动nginx(二选一执行)

/etc/init.d/nginx start

rc-service nginx start

4.3 将nginx添加到启动服务中,下次开机自动运行

rc-update add nginx

4.4 测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Docker容器中没有apt-get命令。这是因为Docker容器通常基于轻量级的操作系统,如Alpine Linux或BusyBox,这些操作系统使用不同的包管理器,如apk或opkg。如果您需要在Docker容器中安装软件包,您需要使用相应的包管理器。 ### 回答2: Docker容器是轻量级虚拟化技术的一种实现,可以在一个宿主机上运行多个隔离的应用容器Docker镜像是一个可执行的文件,它包含了运行一个特定应用程序所需的一切组件。从Docker Hub上下载的镜像可能会缺少某些特定的软件包或库文件,因此我们需要在镜像中安装必要的工具和软件包以满足应用程序的需要。 通常情况下,我们可以在Docker容器中使用apt-get来安装需要的软件包,但是却发现Docker容器里没有apt-get这个命令,那么我们该怎么办呢?这是因为Docker容器的基础镜像通常是一个精简的操作系统,只包含运行应用程序所需的最基本组件,不包括完整的操作系统。因此,我们需要找到适用于镜像的软件包管理器。 对于基于Alpine LinuxDocker镜像,建议使用apk命令来安装需要的软件包。对于Ubuntu或Debian基础镜像,我们可以使用apt命令来安装软件包。如果在Docker容器中使用apt命令,但是提示无法找到该命令,需要先安装 apt-get,命令如下: ```bash apt-get update && apt-get install -y apt-utils ``` 安装完apt-get之后,就可以使用它来安装所需的软件包了。 总之,我们需要根据容器所基于的操作系统或镜像类型,来选择合适的软件包管理器来完成所需要的软件包安装。同时,也应该遵循Docker镜像的最佳实践,保持镜像的精简,减少不必要的组件,提高容器的安全性和可移植性。 ### 回答3: Docker 是一种轻量级的虚拟化技术,可以快速构建、发布和运行应用程序。它采用了容器的概念,每个容器都有自己的文件系统、网络和运行环境。Docker 支持在容器中运行各种不同的操作系统和应用程序,并提供了一系列丰富的命令和工具,可以帮助开发人员和运维人员轻松管理容器。 在 Docker 中,每个容器都是一个独立的运行环境,通过 Dockerfile 文件构建。Dockerfile 文件定义了容器的配置信息,包括操作系统、软件包和运行命令等。当构建容器时,Docker 会根据 Dockerfile 文件中的配置信息建立容器镜像。镜像是容器的基础,所有的容器都是以镜像为基础构建的。 如果你在 Docker 容器中使用 apt-get 命令,可能会遇到一些问题。因为容器不像完整的操作系统,它没有完整的包管理系统和包存储仓库。因此,在 Docker 容器中运行 apt-get 命令将会出错,因为容器中没有 apt-get 这个包管理工具和相应的仓库。 在 Docker 中,我们通常使用一些特定的镜像,比如说 Ubuntu,它已经包含了 apt-get 包管理器和相应的软件源仓库。这样,我们就可以在容器中安装和管理软件包了。如果你需要在容器中使用其他的软件包管理器,比如说 yum 或者 apk,也需要根据容器镜像的不同进行设置。 总之,在 Docker 容器中使用 apt-get 命令需要注意,需要使用已经包含 apt-get 工具的镜像,并且需要在 Dockerfile 文件中设置好相应的软件源仓库。除此之外,我们还可以通过其他的方式,在容器中管理软件包,比如说使用 pip 或者 npm 等包管理工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值