制作自己的docker镜像

制作自己的 docker 镜像

前言

本文主要的目的是制作自己的 docker 镜像,并上传至 docker hub,以便特殊情况下需要重新配置环境。

我的宿主机环境:MacbookPro M1Pro,ARM64

选择基础的操作系统

本文使用 Debian-bullseye 系统。

下载系统镜像

1
docker pull debian:bullseye

运行下载的镜像,生成一个容器

1
docker run -it -d debian:bullseye

出现的e57cb682a0815b435235d6be30d9e7e63fd77d5f5fae45b7f3483910be76d439就是我们容器的 id

进入容器

1
docker exec -it e5 /bin/bash  # 这里的e5就是我们容器id的简写

配置环境

apt-get 设置

  1. 备份原有源

    1
    cp /etc/apt/sources.list /etc/apt/sources.list.bak
  2. 添加源

    1
    2
    3
    4
    5
    6
    7
    8
    vim /etc/apt/sources.list

    # 如果没有vim命令,就使用cat

    rm /etc/apt/sources.list
    cat > sources.list << EOF

    # 然后添加下面的源
    1
    2
    3
    4
    5
    6
    7
    8
    9
    deb http://mirrors.aliyun.com/debian/ bullseye main non-free contrib
    deb-src http://mirrors.aliyun.com/debian/ bullseye main non-free contrib
    deb http://mirrors.aliyun.com/debian-security/ bullseye-security main
    deb-src http://mirrors.aliyun.com/debian-security/ bullseye-security main
    deb http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
    deb-src http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
    deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
    deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib

  3. 更新

    1
    apt update

安装必要的包

  1. sudo

    1
    apt install sudo
  2. vim

    1
    sudo apt install vim
  3. curl

    1
    sudo apt install curl
  4. zsh

    1
    2
    3
    4
    sudo apt install zsh

    # 设置为默认终端
    chsh -s $(which zsh)
  5. git

    1
    sudo apt install git
  6. oh-my-zsh

    1
    2
    3
    4
    5
    # 国内镜像Gitee
    sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"

    # Github官方源
    sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

制作镜像/导出容器

打开宿主机的终端

1
docker container ls

1
docker export e5 > my-env.tar

导入镜像

1
2
3
docker import my-env.tar bullseye:init

docker image ls

出现我们刚刚创建的镜像,证明到目前为止一切都很成功。

创建容器

用刚刚导入的镜像创建一个容器。

1
2
3
docker run -it -d bullseye:init zsh

docker ps

可以看到,容器已经成功的跑起来了。

进入容器

1
docker exec -it 2cc zsh

查看环境配置,这里通过看 git 是否安装来简单测试一下。

1
git --version

说明 git 已经安装成功了。

上传至 docker hub

1
2
3
docker commit 2cc bald3r/my-env:init

docker push bald3r/my-env:init

可以在 docker hub 中看到自己创建的镜像了。

更新镜像

1
2
3
docker commit 2cc bald3r/my-env:finish

docker push bald3r/my-env:finish

使用自己的镜像

1
docker pull bald3r/my-env:fix-air

制作自己的docker镜像
https://bald3r.wang/2023/06/13/制作自己的docker镜像/
作者
Allen
发布于
2023年6月13日
许可协议