mac 下镜像使用

镜像制作

注意 mac 最近的芯片都是arm64架构, 而Linux一般都是 amd64架构

  1. 创建 Dockerfile 文件
# FROM  ubuntu
# 使用阿里云 alinux3
FROM alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest

# 设置环境变量
ENV PATH=/opt/conda/bin:$PATH

RUN echo -e "channels:\n\
  # - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free\n\
  - defaults\n\
show_channel_urls: true\n\
#default_channels:\n\
#  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main\n\
custom_channels:\n\
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud\n\
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud\n\
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud\n\
  nvidia: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud\n\
  rapidsai: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/\n\
" > /root/.condarc

RUN mkdir -p /root/.pip && echo -e  "[global]\n\
index-url = https://mirrors.zju.edu.cn/pypi/web/simple/\n\
trusted-host = zju.edu.cn\n\
" > /root/.pip/pip.conf

RUN yum install wget -y

# 安装 Miniconda https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
# RUN wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-aarch64.sh  -O /tmp/miniconda.sh \
RUN wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh  -O /tmp/miniconda.sh \
    && bash /tmp/miniconda.sh -b -p /opt/conda \
    && \rm /tmp/miniconda.sh -f

# 配置 Conda 环境
RUN /bin/bash -c " conda update -n base -c defaults conda \
    && conda clean -a -y "

# 创建 Conda 环境并安装 PyTorch 和 Triton
RUN conda create -n myenv python=3.10 -y

# 激活 Conda 环境并安装 PyTorch 和 Triton
# CPU Only
RUN conda install -n myenv pytorch==2.4.1 torchvision==0.19.1  cpuonly -c pytorch -y
RUN conda install -n myenv ipython -y
RUN conda init
RUN  source activate myenv \
    && conda clean -a -y \
   &&  pip install triton

# 修改配置
RUN echo 'PS1="\n\e[1;37m[\e[m\e[1;32m\u\e[m\e[1;33m@\e[m\e[1;35m\h $ip\e[m \e[4m\`pwd\`\e[m\e[1;37m]\e[m\e[1;36    m\e[m\n\\$ "' >> ~/.bashrc
RUN echo "source activate myenv" >> ~/.bashrc

# 设置工作目录
WORKDIR /workspace

# 设置默认命令
# CMD ["/bin/bash"]
  1. 跨平台编译,需要先执行下面命令创建buildx 工具
docker buildx version
docker buildx create --use --name docker-buildx  #  执行完后,在下面图片中点一下start(stop),手工将状态改为 use
docker buildx inspect --bootstrap  # 显示信息和下面结果类似
image
image image
  1. Dockerfile文件所在目录,执行. 执行完,生成的镜像会放到 images中, 见上面右下图。
docker buildx build -t pytorch-triton-alinux  --platform=linux/amd64 . --load

使用镜像

  • 查看命令 docker run --help
docker run -it --rm alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest /bin/bash
  • 使用 只支持amd64 架构的镜像
docker pull reg.docker.alibaba-inc.com/aii/aistudio:10180134-20250115154846
docker run --platform linux/amd64 -it --rm  reg.docker.alibaba-inc.com/aii/aistudio:10180134-20250115154846
  • 重新进已经存在的容器
 docker exec -it e98b572c5dabb5e5889a30c37b46e87ae24d45747210ea57967a158b2f5acedb /bin/bash
[keke.zhaokk@macpro16-2 ~]
$ docker ps -a
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS                      PORTS     NAMES
e98b572c5dab   pytorch-triton-alinux           "/bin/bash"              57 minutes ago   Exited (0) 14 minutes ago             elastic_ishizaka
a52e7935ef79   moby/buildkit:buildx-stable-1   "buildkitd --allow-i…"   4 hours ago      Up 4 hours                            buildx_buildkit_docker-buildx0
[keke.zhaokk@macpro16-2 ~]
$ docker start e98b572c5dab
e98b572c5dab
[keke.zhaokk@macpro16-2 ~]
$ docker exec -it e98b572c5dab /bin/bash
(myenv)
[root@e98b572c5dab  /workspace]
docker run --platform linux/amd64 -v $(pwd):/workspace -it --rm  pytorch-triton-alinux

其他配置

  • 最新版支持socket代理登录账号, 登录后马上关闭,不然命令行使用又会出现报错。
image image
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://<阿里云申请到>.mirror.aliyuncs.com",
    "https://hub-mirror.c.163.com"
  ]
}
posted @   bregman  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示