티스토리 뷰
보통 python에서 딥러닝 라이브러리를 사용한다면 conda를 거의 필수적으로 사용한다. conda는 python 버전 및 라이브러리를 프로젝트 단위로 관리할 수 있게 해주고, 쉽게 라이브러리를 설치할 수 있도록 격리해주는 가상 환경이다. 보통 서버나 로컬 환경에서는 bash 쉘이 항상 띄워져 있기 때문에 conda를 설치하고 나면 쉽게 activate 하고 라이브러리를 설치할 수 있지만 도커를 생성하는 과정에서는 쉽지 않다. nvidia docker 이미지로 도커를 만든 뒤 conda를 설치하여 이미지를 생성하는 방법도 생각할 수 있지만 이런 방식으로 하면 캐시 파일이 쌓여 도커 이미지 크기가 커지고 새로 만들기 번거롭다는 문제점이 있다. 이를 위해 하나의 Dockerfile로 conda 환경과 라이브러리가 설치된 도커를 생성하는 방법을 정리하여 비슷한 문제를 가진 사람들에게 도움이 되고자 한다.
Dockerfile 생성하기
구글에서 찾은 miniconda dockerfile과 유사하게 ubuntu 이미지나 nvidia 이미지와 같이 원하는 기본 이미지로부터 conda를 설치한 다음 추가 라이브러리를 설치하는 방식으로 Dockerfile을 구성하였다. 맨 먼저 기본 이미지를 지정해주고 conda의 의존 시스템 라이브러리를 설치한 다음 conda를 설치하였다. 아래의 예제에서는 my_env라는 이름으로 conda environment를 생성하고자 conda activate my_env 명령을 bashrc에 추가하였다.
FROM nvidia/cuda:11.0-cudnn8-devel-ubuntu18.04
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
ENV PATH /opt/conda/bin:$PATH
# Install Dependencies of Miniconda
RUN apt-get update --fix-missing && \
apt-get install -y wget bzip2 curl git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Install miniconda3
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
/bin/bash ~/miniconda.sh -b -p /opt/conda && \
rm ~/miniconda.sh && \
/opt/conda/bin/conda clean -tipsy && \
ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \
echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc && \
echo "conda activate my_env" >> ~/.bashrc
그 다음 관련 라이브러리를 설치하는 명령을 추가한다. source activate 명령어로 my_env 환경으로 전환한 다음 pip로 관련 라이브러리를 설치하여야 한다. requirements.txt 파일이 있다면 해당 파일을 사용하는 방식으로 바꾸어도 무방하다.
RUN /bin/bash -c "source activate my_env && pip install torch"
전체 Dockerfile
FROM nvidia/cuda:11.0-cudnn8-devel-ubuntu18.04
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
ENV PATH /opt/conda/bin:$PATH
# Install Dependencies of Miniconda
RUN apt-get update --fix-missing && \
apt-get install -y wget bzip2 curl git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Install miniconda3
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
/bin/bash ~/miniconda.sh -b -p /opt/conda && \
rm ~/miniconda.sh && \
/opt/conda/bin/conda clean -tipsy && \
ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \
echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc && \
echo "conda activate my_env" >> ~/.bashrc
RUN /bin/bash -c "source activate my_env && pip install torch"
CMD [ "/bin/bash" ]
'IT > IT활용' 카테고리의 다른 글
[정보] git history에 남아있는 큰 파일/민감한 파일 제거하기 (0) | 2021.05.20 |
---|---|
[정보] linux nvidia driver 업데이트 하기 (0) | 2021.04.22 |
파워포인트 차트 x축 값에 맞게 조정하기 (0) | 2021.03.22 |
[git] local git repository에서 현재 commit id 알아내기 (0) | 2021.02.19 |
[정보] 구글 워드를 사용해 이미지를 텍스트로 바꾸자 (0) | 2020.11.21 |
- linux unzip
- nossvc
- 유화
- 정승제짱
- 신종코로나
- ubuntu zip
- ubuntu unzip
- 박스가격
- 재수
- 고효율가전제품
- 택배박스
- 확진자동선
- 코로나19
- google_search_console
- 국가별확진자
- windows사진보내기
- 고효율가전제품환급
- 박스크기
- linux zip
- iphone사진다운로드
- 구글워드
- itemListElement
- 4천원택배
- tmux활용
- docker_container
- docker_image
- tmux설치
- 탐색경로오류
- tmux단축키
- 이미지를텍스트로
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |