Ubuntu中docker部署-----( 在线,离线 )部署------x86架构arm模拟器部署arm版docker

测试说明

本次测试使用环境:

  • 测试方式:win10专业版,在vmware中安装ubuntu22.04版本虚拟机(均为x86架构)
  • 在ubuntu22.04虚拟机中安装x86架构20.10.21版本docker
  • docker中安装22.04版本ubuntu容器
  • 测试arm版本的docker安装aarch64版本的qemu模拟器,并安装aarch64版本ubuntu22.04版本镜像容器

1. docker的安装

1.1 离线安装docker

1.1.1 tgz包离线安装

  1. 下载离线安装包
    使用tgz安装包安装的可以值关注于所要安装的docker的版本,不过需要编写docker.service启动文件
  • 下载地址: https://download.docker.com/linux/static/stable/
    • x86架构:x86_64/ (x86架构的安装包)
    • arm架构:aarch64/ (arm架构的安装包)
  • 这里以安装x86架构docker-20.10.21为例:
    • 进入x86_64/下载文件 docker-20.10.21.tgz
  1. 安装
    • 创建新文件夹 将docker-20.10.21.tgz压缩包复制进去

    • 执行一下命令

      tar zxvf docker-20.10.21.tgz 
      sudo cp docker/* /usr/bin/
      
    • 编写service文件

       (创建配置文件)    
        sudo vim /etc/systemd/system/docker.service  
      
        ------------docker.service 文件内容如下----------------
      
        [Unit] 
        Description=Docker Application Container Engine 
        Documentation=https://docs.docker.com 
        After=network-online.target firewalld.service 
        Wants=network-online.target 
        [Service] 
        Type=notify 
        ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1 
        ExecReload=/bin/kill -s HUP $MAINPID 
        LimitNOFILE=infinity 
        LimitNPROC=infinity 
        LimitCORE=infinity 
        TimeoutStartSec=0 
        Delegate=yes 
        KillMode=process 
        Restart=on-failure 
        StartLimitBurst=3 
        StartLimitInterval=60s 
        [Install] 
        WantedBy=multi-user.target 
      
    • 启动docker

      sudo chmod +x /etc/systemd/system/docker.service
      sudo systemctl daemon-reload
      sudo systemctl start docker
      sudo systemctl enable docker
      docker --version
      
      
      ------------------实操如下---------------------
      [wop@bogon dockeris]$ sudo chmod +x /etc/systemd/system/docker.service
      [wop@bogon dockeris]$ sudo systemctl daemon-reload
      [wop@bogon dockeris]$ sudo systemctl start docker
      [wop@bogon dockeris]$ sudo systemctl enable docker
      Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /etc/systemd/system/docker.service.
      [wop@bogon dockeris]$ docker --version
      Docker version 20.10.21, build baeda1f
      
      • 配置加速器加速下载docker镜像
      sudo vim /etc/docker/daemon.json
      
       文件内容
      

{
“registry-mirrors”: [“https://gg3gwnry.mirror.aliyuncs.com”]
}

 重启服务:
 sudo systemctl daemon-reload
 sudo systemctl restart docker

 ```

1.1.2 deb包离线安装

使用deb安装包的方式安装需要自己确定所安装系统版本所需的deb安装包型号,优点是不用自己编写docker.service

  • 确定linux版本

    cat /etc/lsb-release 
    
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=22.04
    DISTRIB_CODENAME=jammy
    DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
    
  • 确定dpkg版本

    sudo dpkg  --print-architecture
    
    amd64
    
  • 下载地址

    https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable
    
  • 需要下载以下三个文件

    containerd.io_1.6.9-1_amd64.deb
    docker-ce-cli_20.10.21~3-0~ubuntu-jammy_amd64.deb
    docker-ce_20.10.21~3-0~ubuntu-jammy_amd64.deb
    
  • 安装命令

    sudo dpkg -i containerd.io_1.6.9-1_amd64.deb && apt-get -f install
    sudo dpkg -i docker-ce-cli_20.10.21~3-0~ubuntu-jammy_amd64.deb && apt-get -f install
    sudo dpkg -i docker-ce_20.10.21~3-0~ubuntu-jammy_amd64.deb && apt-get -f install
    
  • 启动docker

    systemctl start docker
    
  • 设置开机自动启动

    systemctl enable docker.service
    

1.2 在线安装docker

1.2.1 官方安装脚本 (推荐使用+方便快捷)

  • 下面以ubuntu系统为例
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh

1.2.2 手动安装

  • 下面以ubuntu系统为例
  1. 更新软件包列表:使用以下命令更新软件包列表:
sudo apt update
  1. 安装依赖软件包:安装Docker所需的依赖软件包:
    sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
  1. 添加Docker官方GPG密钥:通过以下命令添加Docker官方的GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. 添加Docker官方APT源:添加Docker官方的APT源到Ubuntu的软件包管理器中:
echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 更新软件包列表:再次更新软件包列表以获取Docker:
sudo apt update
  1. 安装Docker引擎:使用以下命令来安装Docker引擎:
sudo apt install docker-ce docker-ce-cli containerd.io
  1. 启动Docker服务:使用以下命令启动Docker服务:
sudo systemctl start docker

至此,已经完成了在线安装Docker的步骤。

1.3 检验docker是否安装成功

要验证Docker是否成功安装,请按照以下步骤执行:

  1. 检查Docker版本:在终端中运行以下命令来检查Docker版本:
docker --version

如果成功安装,将看到Docker的版本信息。

1.4 彻底卸载docker

以下是离线和在线安装Docker的卸载步骤:

在线安装的卸载步骤

  1. 停止Docker服务:使用以下命令停止Docker服务:
sudo systemctl stop docker
  1. 卸载Docker软件包:执行以下命令以卸载Docker软件包:
sudo apt-get autoremove docker docker-ce docker-engine  docker.io  containerd runc
  1. 查看docker是否卸载干净
dpkg -l | grep docker
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P        ## 删除无用的相关的配置文件
  1. 删除没有删除的相关插件
sudo sapt-get autoremove docker-ce-*
  1. 删除docker的相关配置&目录
sudo rm -rf /etc/systemd/system/docker.service.d

sudo rm -rf /var/lib/docker
  1. 确定docker卸载完毕
docker --version

离线安装的卸载步骤

  1. 停止Docker服务:执行以下命令停止Docker服务:
sudo systemctl stop docker
  1. 卸载Docker软件包:使用以下命令卸载Docker软件包:
sudo dpkg -r docker-ce
  1. 删除Docker配置和数据:执行以下命令删除Docker的配置文件和数据:
sudo rm -rf /var/lib/docker
  1. 删除Docker用户组(如果没有其他使用该组的进程):使用以下命令删除Docker用户组:
sudo groupdel docker

请注意,在卸载Docker之后,容器、镜像和卷将被删除,并且无法恢复。如果希望保留它们,请先备份。此外,如果在安装过程中使用了不同的方法(如使用脚本或其他自定义方式安装的Docker),卸载步骤可能会有所不同。

1.5 x86下安装arm版docker

1.5.1 安装qemu模拟器

如果想再x86下安装arm版docker,可以借助qemu模拟器模拟arm框架

  1. 获取QEMU
  • 下载地址:https://github.com/multiarch/qemu-user-static/releases
  • 下载网站中: qemu-arm-static:arm架构 , qemu-aarch64-static:aarch64架构
  • 下载: qemu-aarch64-static 文件 (这里以aarch64架构为例)
  1. 安装
sudo cp qemu-aarch64-static /usr/bin/
sudo chmod +x /usr/bin/qemu-aarch64-static
  1. 注册QEMU虚拟机 (每次重启都要重新注册)
sudo docker run --rm --privileged multiarch/qemu-user-static:register

注:安装完qemu的模拟器就可以使用x86版本的docker来安装arm版本的docker镜像,在x86架构下实例化一个arm版本的ubuntu的docker镜像

1.5.2 qemu中安装arm版本ubuntu

注: 安装完qemu的模拟器后确保电脑安装了docker(x86版本)进行一下操作

  1. 在线拉取ubuntu Arm镜像
sudo docker pull arm64v8/ubuntu:22.04

注: 如果是离线的安装ubuntu镜像,请见: 2.2章离线安装ubuntu

  1. 创建Arm容器
   sudo docker run  -it \  
   --name arm_ub\  
   -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static \  
   -v /etc/timezone:/etc/timezone:ro \  
   -v /etc/localtime:/etc/localtime:ro \  
   arm64v8/ubuntu:22.04 /bin/bash  
  1. 开启这个容器
sudo docker start arm_ub
  1. 进入容器
sudo docker exec -it arm_ub /bin/bash
  1. 测试容器的架构
 uname -m

 ---------返回值为-------------
 aarch64
  1. 导出容器
sudo docker export arm_ub > arm_ub.tar
  1. 导入容器
sudo docker import arm_ub.tar arm_ub_image

注:这里导入导出容器和 第3章导入导出容器的方式相同

  1. 实例化这个镜像

注: 这里在x86架构下实例化arm架构的容器和直接实例化x86架构的容器不相容需要保证,除指令不同外还需要保证:启动QEMU虚拟机,方法请见: 1.5.1 安装qemu模拟器中 3.注册QEMU虚拟机


sudo docker run -it  --name aaaa -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro  arm_ub_cout  /bin/bash

-----------------------如果上面命令有问题运行下面命令---------------------------

sudo docker run -it  --name aaaa -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static   arm_ub_cout  /bin/bash
  1. 启动运行容器
sudo docker start aaaa

sudo docker exec -it aaaa /bin/bash

2. docker安装ubuntu

2.1 在线安装ubuntu

  1. 在线拉取ubuntu镜像
docker pull ubuntu

注:

  1. 运行容器,并且可以通过 exec 命令进入 ubuntu 容器
docker run -itd --name ubuntu-test ubuntu /bin/bash
  1. 启动这个虚拟机
sudo docker exec -it ubuntu-test /bin/bash

2.2 离线安装ubuntu(导入导出官方镜像 )

  1. 从 Docker Hub 或其他镜像仓库下载要导出的 Ubuntu 镜像。可以使用以下命令:

    sudo docker pull ubuntu
    
  2. 导出 Docker 镜像到一个文件中,可以使用以下命令:

    sudo docker save -o ubuntu_image.tar ubuntu
    

    这将把 Ubuntu 镜像保存到 ubuntu_image.tar 文件中。

在没有网络连接的机器上:

  1. ubuntu_image.tar 文件拷贝到没有网络连接的机器上,比如使用 U 盘或其他外部存储设备。

  2. 在没有网络连接的机器上,使用以下命令加载已保存的 Docker 镜像:

    sudo docker load -i ubuntu_image.tar
    

    这将加载 ubuntu_image.tar 文件中的 Docker 镜像到本地 Docker 环境中。

现在,已经将 Ubuntu 镜像成功导入可以在没有网络连接的机器上使用了。请确保文件拷贝过程中保持镜像文件完整性,并确保目标机器上已经安装了 Docker。

需要注意的是,如果有其他依赖项(比如基础镜像或软件包)未被导入的机器上,可能需要手动满足这些依赖关系,以确保镜像的正常运行。

2.21 导入镜像后验证

查看镜像是否存在即ID

wub@wub:~/Downloads$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
ubuntu       latest    01f29b872827   3 weeks ago   77.8MB

然后安装Ubuntu系统

  1. 运行容器,并且可以通过 exec 命令进入 ubuntu 容器
sudo docker run -itd --name docker_ub ubuntu

---------
wub@wub:~/Downloads$ sudo docker run -itd --name docker_ub ubuntu
ba84659d5b8e6c3c3ced4f6caf65ff1f6bc5f981028a426955b08bbe50c87676

  1. 启动这个虚拟机

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值