docker学习:Fedora容器

7 篇文章 0 订阅
6 篇文章 0 订阅

1.Fedora基础容器

1.Fedora容器常用包

网上介绍fedora容器非常少,基本都是ubutun容器。fedora容器使用过程还是遇到一些小问题,有必要单独说明下。

使用前面介绍的容器启动方式,我们新建fedora基础容器,常用的包如下(和ubuntu有点差异):

dnf install vim -y
dnf install iputils -y
dnf install net-tools -y
dnf install python3-pip -y
dnf install curl -y
dnf install wget -y

dnf install gcc -y
dnf install g++ -y
dnf install ruby -y
dnf install java-latest-openjdk.aarch64 -y

# 清除缓存
dnf clean all

2.Fedora容器安装ssh服务器

对于Fedora容器安装ssh服务器,默认就没有那么容易了。安装ssh服务器,但是无法启动,可能遇到以下的问题:

  • 问题1:service sshd无法启动
service sshd
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, reload-or-restart, try-reload-or-restart, force-reload, status, condrestart). For other actions, please try to use systemctl.
  • 问题2:systemctl start sshd无法启动
systemctl start sshd
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
  • 问题3:/usr/sbin/init无法启动容器
    问题2的原因是启动容器使用的是"/bin/bash",导致1号进程无法使用systemctl命令。
sudo docker run -i -t -d -v /share:/share -p 12122:22 --privileged=true --name fdocker2 --hostname fdocker2 fedora:latest /usr/sbin/init
6b7aa89a4b8bc3e3fb6514e468c79a95697f02d89378280cfd8bd910ba36ce57
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/usr/sbin/init": stat /usr/sbin/init: no such file or directory: unknown.

解决的办法是我们自己制作镜像,先使用下面的命令启动容器:

sudo docker run -i -t -d -v /share:/share -p 12122:22 --privileged=true --name fdocker2 --hostname fdocker2 fedora:latest /bin/bash

然后安装initscripts包,并导出镜像。

# 安装包
dnf install initscripts -y

#导出镜像
docker export -o fedora0.tar fdocker2
docker import fedora0.tar
docker tag xxx local-fedora:v1.0

# 启动docker
sudo docker run -i -t -d -v /share:/share -p 13122:22 --privileged=true --name fdocker3 --hostname fdocker3 fedora:latest /usr/sbin/init

# 进入docker
sudo docker exec -it fdocker3 bash

# 安装ssh服务器
dnf install openssh-server
service start sshd

使用本地制作的镜像,重新拉起新的容器,就可以使用systemctl启动sshd服务了。

# service启动
service start sshd
# 或者
systemctl start sshd
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值