불친절한 블로그

[Docker] Docker 이미지 생성 부터 dockerHub에 업로드 본문

IT Infrastructure

[Docker] Docker 이미지 생성 부터 dockerHub에 업로드

오누! 2020. 4. 10. 17:36
반응형

처음 Docker를 접했을땐 파이썬을 쓰려면 Docker hub에 누군가가 세팅해놓은 이미지를 pull해서 사용했다.

Dockerfile을 만드는게 어렵게만 다가왔다.

 

어느때와 같이 누군가 세팅해놓은 jupyter notebook을 pull해서 내 환경을 맡추고 있었는데,

python 패키지중 psycopg2가 설치시 오류가 계속해서 발생했다.

구글링을 통해서 docker update, upgrade를 하고, python 버전 upgrade 하고 해도 psycopg2가 설치되지 않았다.

참고

파이썬 버전 변경

sudo rm /usr/bin/python3

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2

sudo update-alternatives --config python3

 

docker 컨테이너에 python 패키지 추가

docker exec [컨테이너 id] pip list (설치된 패키지 리스트 확인)

docker exec [컨테이너 id] pip install [설치할 패키지명] (패키지 설치)

당시 psycopg2 설치 오류

또한 다른 시도를 위해 /bin/bash 로 접근해서 해결하려 했지만 권한은 이미지 작성자에게 있어서 sudo가 막혀있었다.

그래서 내 환경을 만들어야겠다는 생각이 들었다.

 

아직도 이미지를 새로 생성하는 방법은 정확히 모르겠다.

우선 빈 이미지(?)를 받는다.

docker pull ubuntu:latest

 

공식 이미지는 사용자 이름이 붙지 않는다.

ex) docker pull ubuntu:latest (공식)

    docker pull onu6024/ubuntu:latest (개인이미지)

 

docker 이미지 생성 파일

vi Dockerfile

 

Dockerfile을 만들었으면 이미지를 build 한다.

docker build -t [repository명] .

 

windows powershell으로 환경 변경해서 진행 (개인적인 이유)

jupyter notebook을 설치했기 때문에 실행문은 

docker run -it -p 8888:8888 -p 6006:6006 -v ~/docker:/data jupyter jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/data'

 

jupyter notebook 실행화면!!

 

이제 내 dockerHub에 업로드 해보자

dockerHub에 올리기 위해선 dockerHub 계정명과 같아야한다. 

상단에 에러로 확인이 된다. 계정은 onu6024인데 jupyter로 올리려니 권한 에러가 뜬다.

denied: requested access to the resource is denied

 

commit으로 이미지명을 onu6024/data_manager로 새로 만들고 

docker push 했을때 정상적으로 dockerHub에 업로드 되는것을 확인할 수 있다.

반응형
Comments