admin 发布的文章

Docker Community Edition 镜像使用帮助

注意: 本镜像只提供 Debian/Ubuntu/Fedora/CentOS/RHEL 的 docker 软件包,非 dockerhub
Debian/Ubuntu 用户

以下内容根据 官方文档 修改而来。

如果你过去安装过 docker,先删掉:

sudo apt-get remove docker docker-engine docker.io

首先安装依赖:

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

根据你的发行版,下面的内容有所不同。你使用的发行版:

信任 Docker 的 GPG 公钥:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

对于 amd64 架构的计算机,添加软件仓库:

sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
$(lsb_release -cs) \
stable"

如果你是树莓派或其它ARM架构计算机,请运行:

echo "deb [arch=armhf] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \

 $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list

最后安装

sudo apt-get update
sudo apt-get install docker-ce

Fedora/CentOS/RHEL

以下内容根据 官方文档 修改而来。

如果你之前安装过 docker,请先删掉

sudo yum remove docker docker-common docker-selinux docker-engine

安装一些依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

根据你的发行版下载repo文件:

wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

把软件仓库地址替换为 TUNA:

sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

最后安装:

sudo yum makecache fast
sudo yum install docker-ce

https://wiki.gentoo.org/wiki/OpenRC

Features

OpenRC provides a number of features touted as innovative by recent init systems like systemd or [upstart], such as:

cgroups support,
process supervision,
parallel startup of services, and
hardware initiated initscripts run.

It does this without requiring large layout changes to accommodate radically different designs and dependencies.
Tip
See the comparison of init systems article for more information on init systems.
OpenRC Busybox integration

Busybox can be used to replace most of the userspace utilities needed by OpenRC (init, shell, awk and other POSIX tools), by using a complete Busybox as shell for OpenRC all the calls that normally would cause a fork/exec would be spared, improving the overall speed. This process is not yet streamlined.

Please note that there are currently many Busybox applets that are incompatible with OpenRC. See bug #529086 for details.
Replacing init

In order to set a specific runlevel from the bootloader the variable softlevel= should be used.
busybox

The SysV-init /etc/inittab file provided by Gentoo is not compatible with the Busybox init.
FILE /etc/inittabExample inittab compatible with Busybox init

::sysinit:/sbin/openrc sysinit
::wait:/sbin/openrc boot
::wait:/sbin/openrc

openrc-init

OpenRC has its own init system called openrc-init. See OpenRC/openrc-init for details.

https://superuser.com/questions/1290314/what-is-modloop-option-in-alpine

Ask Question
Asked 2 years ago
Active 1 year, 10 months ago
Viewed 2k times

3

I'm trying to understand what is the difference of making Alpine installation medium as read-only type (LiveCD) and as a standard disk mode (where the OS state can be saved). I've seen the modloop option when the author of this article (https://wiki.alpinelinux.org/wiki/Create_UEFI_boot_USB) configured loader entries for UEFI boot mode:

Contents of loader/entries/alpine.conf
title Alpine Linux
linux /boot/vmlinuz-hardened
initrd /boot/initramfs-hardened
options modloop=/boot/modloop-hardened modules=loop,squashfs,sd-mod,usb-storage quiet
And the question is how options listed in this stanza modloop=/boot/modloop-hardened modules=loop,squashfs,sd-mod are related to each other and what do they mean?

linux boot linux-kernel kernel-module alpine-linux
shareimprove this question
asked Jan 30 '18 at 13:19

Timur Fayzrakhmanov
13166 bronze badges
1
Did you check whenever there is a man page available from within alpine for modloop? – Seth Jan 30 '18 at 13:40
1
Yes I did. After installing man man-pages I tried to grep-ing "modloop" within the whole man pages. As you might guess man modloop gives nothing as well. – Timur Fayzrakhmanov Jan 31 '18 at 9:48
add a comment
1 Answer
activeoldestvotes

4

The modloop= option specifies a SquashFS filesystem that gets mounted to /.modloop by the init file /etc/init.d/modloop and symlinked from /lib/modules (or possibly union-mounted with the overlay - see the modloop init script for details). It contains the full kernel module tree for the built kernel, not the more limited set included in the initramfs / initrd.

You might find these helpful to explore:

unsquashfs -l /boot/modloop-hardened (to explore what will get mounted to /.modloop)
gzip -dc /boot/initramfs-hardened | cpio -it (to explore the initramfs contents)
shareimprove this answer

https://blog.csdn.net/qq_39629343/article/details/81501507

/bin/sh: /sbin/openrc-run: not found

Alpine使用的是OpenRCinit系统,而rc-service是openrc的一部分,所以安装openrc即可,使用如下命令安装:
apk add openrc --no-cache


https://blog.csdn.net/freeking101/article/details/80795752

From:https://www.aliyun.com/jiaocheng/137717.html

Alpine Linux、CoreOS、RancherOS、Red Hat 原子项目、 VMware光子操作系统比较
https://blog.csdn.net/hxpjava1/article/details/78482987

Alpine Linux配置使用技巧:https://www.aliyun.com/jiaocheng/137717.html

alpinelinux 官网:https://www.alpinelinux.org

Alpine Linux使用简介

目录:

一、Alpine简要介绍

二、Alpine本地安装

三、Alpine在Docker下运行

四、Alpine的配置和使用

4.1网络相关文件

4.2更新国内源

4.3软件包管理工具apk的基本使用

4.4开启SSH服务

4.5安装nginx

一、Alpine简要介绍

Alpine 的意思是“高山的”,比如 Alpine plants高山植物,Alpine skiing高山滑雪、the alpine resort阿尔卑斯山胜地。

Alpine Linux 网站首页注明“Small!Simple!Secure!Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.”概括了以下特点:

1、小巧:基于Musl libc和busybox,和busybox一样小巧,最小的Docker镜像只有5MB;

2、安全:面向安全的轻量发行版;

3、简单:提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。

4、适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像。

二、Alpine本地安装

Alpine Linux是一个完整的操作系统,像其他操作系统一样,可以将Alpine安装到本地硬盘中。我们可以创建一个VirtualBox虚拟机,在VirtualBox 下安装该系统,以便进行测试使用。具体安装过程,参见我写的另一篇文章《Alpine linux硬盘安装》,地址:http://blog.csdn.net/csdn_duomaomao/article/details/76053229

主要是在安装过程中,指定一些电脑的基本设置,比如键盘布局、主机名、网卡、IP地址、root口令修改、时区设置、软件仓库地址、SSH服务器、NTP客户端、系统安装方式、磁盘格式化等。

三、Alpine在Docker下运行

1、Docker下的运行

官方 Alpine 镜像的文档:http://gliderlabs.viewdocs.io/docker-alpine/

可以使用Docker Toolbox,创建一台Docker虚拟主机,在该主机的Docker环境下运行alpine的 Docker容器。该容器就是一个Alpine Linux系统,

docker pull alpine

docker run -it --name myalpine alpine

2、作为Docker容器的基础镜像

以Alpine为基础镜像,创建一个MySQL容器,镜像大小只有36.5MB,

同样的方式使用Ubuntu系统作为基础镜像,镜像大小有184MB,

Dockerfile文件的内容:

FROM alpine:3.6

RUN apk add --no-cache mysql-client

ENTRYPOINT ["mysql"]

创建一个test/mysqlclient:1.0镜像

docker build -t test/mysqlclient:1.0 .

四、Alpine的配置和使用

4.1网络相关文件

主机名文件

/etc/hostname

使用新设置的主机名立刻生效,执行如下命令:

hostname -F /etc/hostname

主机IP和域名映射文件

/etc/hosts

文件内容为:

192.168.99.100 alpine.csdn.net

DNS 服务器配置文件

/etc/resolv.conf

文件内容为:

nameserver 218.2.135.1

nameserver 202.102.24.35

网卡配置文件

/etc/network/interfaces

文件内容为:

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet static

  address 192.168.3.166

  netmask 255.255.255.0

  gateway 192.168.3.254

修改完相关配置以后,重新启动网络服务:

/etc/init.d/networking restart

网络相关的文档,详细参见:https://wiki.alpinelinux.org/wiki/Configure_Networking

4.2更新国内源

Alpine的源文件为:

/etc/apk/repositories,

默认的源地址为:http://dl-cdn.alpinelinux.org/

可以编辑源文件 /etc/apk/repositories,

采用国内阿里云的源,文件内容为:

https://mirrors.aliyun.com/alpine/v3.6/main/

https://mirrors.aliyun.com/alpine/v3.6/community/

如果采用中国科技大学的源,文件内容为:

https://mirrors.ustc.edu.cn/alpine/v3.6/main/

https://mirrors.ustc.edu.cn/alpine/v3.6/community/

4.3软件包管理工具apk的基本使用

alpine 提供了非常好用的apk软件包管理工具,

可以方便地安装、删除、更新软件。

查询openssh相关的软件包

apk search openssh

安装一个软件包

apk add xxx

删除已安装的xxx软件包

apk del xxx

获取更多apk包管理的命令参数

apk --help

比如安装常用的网络相关工具:

更新软件包索引文件

apk update

用于文本方式查看网页,用于测试http协议

apk add curl

提供了查看网络连接的协议端口的命令ss,可以替代netstat命令

apk add iproute2

drill 命令可以替代dig和nslookup DNS查询命令

apk add drill

#测试192.168.3.166的80端口,查看web服务是否能正常访问。

curl 192.168.3.166

查看建立的TCP连接

ss -ta

查询域名的信息

drill blog.csdn.net @8.8.8.8

根据IP地址,反向查找域名

drill -x 8.8.8.8 @47.94.71.34

4.4开启SSH服务

安装openssh-server服务器

apk add openssh-server

修改配置文件 /etc/ssh/sshd_config,

如果要想使用root用户远程管理,需要修改参数为:

PermitRootLogin yes

将ssh服务配置为开机自动启动

rc-update add sshd

如果你想立刻生效,可以执行命令:

/etc/init.d/sshd restart

4.5安装nginx

安装Nginx软件并更新到最新,

apk add --update nginx

手工启动Nginx

/etc/init.d/nginx

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

rc-update add nginx

测试Nginx服务是否正常,使用curl访问,

默认配置会返回nginx的404页面错误,标明服务已正常:

curl 192.168.3.166

【附图】

01-在Docker主机中,下载alpine镜像

02-查看镜像信息,运行alpine容器,查看容器信息

03-在Alpine容器系统中安装常用网络工具-完成部分安装

04-完成常用网络工具的安装

05-在容器中,查看Alpine容器的IP地址

06-在Docker虚拟主机中使用docker build生成Docker镜像的过程

07-生成Docker镜像的大小,只有36.5MB

08-网络相关配置文件及内容

09-重启网络服务 networking restart

10-软件仓库源的文件内容

11-apk软件包管理常用命令-updae-search-add-del

12-使用curl查看Nginx网站的页面反馈-查看TCP网络状态

13-使用drill查询blog.csdn.net网站域名信息1

13-使用drill查询blog.csdn.net网站域名信息2

14-修改ssh配置文件,运行Root用户使用ssh登录

15-使用Xshell客户端工具,ssh登录到3.166的Alpine机器上

16-更新APK软件包仓库的索引文件

17-安装Nginx

18-重启Nginx服务-将Nginx设置为开机自动启动

【注意事项】:因为Alpine采用的是musl libc,不是通常用的glibc,在使用DNS时,Alpine(musl libc)在DNS解析文件/etc/resolv.conf中,不使用domain或 search选项。在使用DNS作为服务发现时,要查看相应的文档来解决。相关链接:http://gliderlabs.viewdocs.io/docker-alpine/caveats/

【心得体会】:

http://wiki.alpinelinux.org 网站上内容非常丰富,英文也非常简单,几乎所有的问题都能在该网站上找到答案,强烈推荐该网站。

【参考链接】:

Alpine Linux package management

http://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management

Alpine Linux,一个只有5M的Docker镜像

http://www.infoq.com/cn/news/2016/01/Alpine-Linux-5M-Docker

Alpine Linux 源使用帮助

http://mirrors.ustc.edu.cn/help/alpine.html

Alpine Linux配置使用技巧【一个只有5M的操作系统(转)】

http://www.cnblogs.com/zhangmingcheng/p/7122386.html

docker(10):virtualbox安装使用 alpinelinux

http://blog.csdn.net/freewebsys/article/details/53638227

ssh 标准端口
git clone git@hostname:[user]/[project].git

ssh 非标准端口
git clone ssh://git@hostname:port/[user]/[project].git

  • hostname:可以是主机的IP地址也可以是域名,域名会自动通过DNS进行解析
  • port:端口号