Ubuntu中安裝anaconda的Dockerfile

FROM ubuntu:latest

LABEL author = 'ZHOU'  

 

# 修改源爲國內源

RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \

    sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list       

RUN apt-get clean && apt-get update --fix-missing 

 

# 更新系統

RUN apt-get update && apt-get upgrade

# 軟件安裝所必須的依賴時,有可能會出現對話框進行選擇,如果不選擇會導致鏡像製作失敗,需要添加如下語句

 

#+++++++++++++++++++

# 添加管理員賬戶ZHOU,設置工作目錄

RUN useradd -ms /bin/bash zhou && \

    adduser zhou sudo && \

    echo "zhou:0"|chpasswd && \

    echo "root:0"|chpasswd

 

# 設置運行賬戶,設置環境變量並容器啓動後需要運行的命令

# 改變運行賬戶、工作目錄和運行Shell(/bin/bash,默認Shell爲/bin/sh)

ENV HOME /home/zhou

ENV HOSTNAME ZHOU-PC

WORKDIR /home/zhou

#+++++++++++++++++++

 

# 安裝iproute2等的依賴時,會出現對話框,製作鏡像時不選擇會失敗,解決方案是添加語句: ENV DEBIAN_FRONTEND noninteractive)

ENV DEBIAN_FRONTEND noninteractive

 

# 安裝apt-utils(允許安裝第三方軟件)、sudo、vim、iproute2、wget(下載文件)

RUN apt-get install -y apt-utils sudo vim iproute2 wget

 

# ---------------------------------------

# 安裝OpenSSH

RUN apt-get install -y openssh-server

# 修改ssh配置文件,文件位置/etc/ssh/sshd_config,添加允許所有主機連接,

RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config && \

    echo 'sshd:ALL' >> /etc/hosts.aldlow

# 開放22端口

EXPOSE 22

# ssh服務需要在容器啓動時運行,一般由CMD或者ENTRYPOINT設置執行

 

# ---------------------------------------

# 安裝完軟件之後,自動清除緩存

RUN apt-get autoclean && apt-get autoremove

 

#++++++++++++++++++++

USER zhou

# 下載Miniconda

RUN wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/conda.sh

 

# 安裝Miniconda, -b爲靜默安裝,-p爲指定安裝目錄,安裝完成之後刪除安裝程序

RUN /bin/bash ~/conda.sh -b -p ~/conda && \

    rm ~/conda.sh

 

# 添加conda變量到PATH

RUN echo '\n\

__conda_setup="$('/home/zhou/conda/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"\n\

if [ $? -eq 0 ]; then\n\

    eval "$__conda_setup"\n\

else\n\

    if [ -f "/home/zhou/conda/etc/profile.d/conda.sh" ]; then\n\

        . "/home/zhou/conda/etc/profile.d/conda.sh"\n\

    else\n\

        export PATH="/home/zhou/conda/bin:$PATH"\n\

    fi\n\

fi\n\

unset __conda_setup\n'\

>> ~/.bashrc && \

    /bin/bash -c 'source  ~/.bashrc'

 

# 更改Python國內源

RUN mkdir ~/.pip && \

    cd ~/.pip && \

echo "\

[global]\n\

index-url = https://mirrors.aliyun.com/pypi/simple/\n\

\n\

[install]\n\

trusted-host=mirrors.aliyun.com\n"\

> ~/.pip/pip.conf 

 

# 更改Conda國內源

RUN echo "\

channels:\n\

   - defaults\n\

show_channel_urls: true\n\

channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda\n\

default_channels:\n\

   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main\n\

   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free\n\

   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r\n\

   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro\n\

   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2\n\

custom_channels:\n\

   conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud\n\

   msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud\n\

   bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud\n\

   menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud\n\

   pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud\n\

   simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud\n"\

 > ~/.condarc

 

#+++++++++++++++++++

# 設置容器運行時執行的命令,啓動ssh服務,並進入bash Shell

ENTRYPOINT sudo service ssh start && /bin/bash


 

#---------------------------------------------------------------------------------------

# 利用Dockerfile創建定製鏡像,同時指定版本號

# docker build . -t mylinux:1.0

 

# 創建完成之後,利用docker run命令生成新的容器,同時把容器的22端口映射到宿主機的8888端口上,指定容器名、主機名等

# docker run -it -p 8888:22 --name Ubuntu_Conda -h ZHOU-PC mylinux:1.0

 

# 遠程通過SSH連接到容器,需要知道宿主機的IP地址

# ssh -p 8888 [email protected] 

#---------------------------------------------------------------------------------------

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章