美文网首页
docker学习:fedora基础容器

docker学习:fedora基础容器

作者: khaos | 来源:发表于2022-11-28 00:05 被阅读0次

    1.Fedora基础容器

    1.Fedora容器常用包

    使用前面介绍的容器启动,新建fedora基础容器,常用的包如下:

    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启动服务了。

    # service启动
    service start sshd
    # 或者
    systemctl start sshd
    

    相关文章

      网友评论

          本文标题:docker学习:fedora基础容器

          本文链接:https://www.haomeiwen.com/subject/riclfdtx.html