2019. 8. 15. 22:25ㆍ개발/Docker
으음 도커까지 해야 할 줄 몰랐지만, 현재 작업하려는 환경이 도커 안에 jupyterhub 환경인데,
Flask를 켜고 싶은데, 도저히 불가능한 것 같아서.... 해야한다면 새로 도커 환경을 만들고 Flask를 띄워야 할 것 같아.
기초부터 공부를 시작한다..
(기초만 파다가 그냥 끝나겠다...ㅠㅠ)
https://hiseon.me/linux/ubuntu/install-docker/
우분투에서 docker 설치 방법 - HiSEON
우분투에서 docker 설치 방법 우분투 16.04 또는 우분투 18.04 버전에서 도커 docker-ce 버전을 설치하는 방법을 설명드립니다. 그리고 여러버전의 CUDA Toolkit을 사용할 수 있도록 nvidia-docker를 추가적으로 설치하는 방법에 대해 설명드립니다.
hiseon.me
일단 위에 있는 방법대로 설치를 쭉 하니 잘됬다.
내가 지금 쓰는 환경은 Ubuntu 16.04이다!
nvidia-driver docker는 일단 설치를 안 했다
일단 명령어를 잘 몰라서 여러 가지를 막 시도했었다.
일단 image는 나와 지금 상황이 맞을 것 같은 medium을 찾아서 하였다. ( 2017이라서 tensor flow 버전이 1.1.0이었다...)
Docker를 이용하여 python 과 tensorflow 학습을 위한 환경구성하기
동기: 취미로 coding 및 machine learning 을 공부하는 과정에서 2대 이상의 컴퓨터를 번갈아 사용하는데 컴퓨터 간의 환경을 통일하고자 docker를 이용하려합니다.
medium.com
일단 이미지를 가져오자
docker pull dash00/tensorflow-python3-jupyter
여기서 나의 환경은 고정 아이피로 진행되다 보니 여러 실패를 하였다! 그래서 열심히 검색!
https://codeday.me/ko/qa/20190318/54729.html
Docker 컨테이너에 정적 IP 할당 - 코드 로그
Docker 컨테이너를 시작할 때 정적 IP 172.17.0.1을 할당하려고합니다. 나는이 컨테이너가 2122 포트를 수신하도록이 컨테이너의 ssh 포트로 2122 포트를 사용합니다. sudo docker run -i -t -p 2122:2122 ubuntu 이 명령은 172.17.0.5와 같은 임의의 IP를 가진 Docker 컨테이너를 실행하지만 특정 IP를 컨테이너에 할당해야합니다. 다음 쉘 스크립트는 고급 네트워크 설정에서 Docker 문서를 참조합
codeday.me
그래서 이렇게 network를 만들었다. subnet은 다들 약간 저런 수로 이루어져 있던데 왜 저렇게 하는지는 모르겠다 ㅎ
docker network create --subnet=172.18.0.0/16 mynet
## 단순 예시
docker run --net mynet --ip 172.18.0.22 -it ubuntu bash
그리고 run을 해준다.
docker run --ip [고정아이피] --name py3 -p 1111:1111 -p 1112:1112 -it dash00/tensorflow-python3-jupyter bash
처음에 이 명령어들은 다 뭔 소릴까 하다가 깨달은 것은
- -p는 어떤 포트를 쓸지 지정하는 것 같다. 그래서 여기서 저렇게 하면 1111 , 1112 2개를 사용할 수 있는 것 같다.(아닐 수도)
- --name 이미지 run 한 거 이름 지정해주기 나중에 $ docker start py3 $ docker attach py3 하면 다시 들어가진다.
- -it : 잘 모르겠지만 터미널 입력을 위해 필요하다니 필수!
- -v : host와 container의 디렉터리를 연결(마운트!)
- --ip 고정 아이피 넣어주는 것
https://nicewoong.github.io/development/2017/10/09/basic-usage-for-docker/
[Docker] Docker 기본 사용법 정리 - nicewoong
Docker 사용법 (Linux에서) Reference 를 보고 직접 따라해본 것을 정리한 내용입니다. Docker 다운받기 curl -s https://get.docker.com/ | sudo sh Docker 사용 권한 주기 docker 는 기본적으로 root 권한이 필요로 되어있다고 함. sudo 명령어 없이 docker를 이요하고 싶다면 아래 커맨드로 사용자에게 권한을 줍시다. sudo usermod -aG docker your-user 그리고나서
nicewoong.github.io
docker images
저렇게 짠 하면 들어가진다!
지금 여기에는 이미지에 tensor flow/py3/jupyter 가 그냥 깔려있다!
그리고 여기서 나는 지금 이 서버에서 jupyter notebook을 쓰기 때문에 port를 8888을 쓸 수 없으니 변경해야 한다.
일단 script를 수정하기 위해 들어간 후 vim 설치!
apt-get update
apt-get install vim
그다음에 수정하는 파일로 들어가기!
vi ~/.jupyter/jupyter_notebook_config.py
원래 저 찐한 노란색 부분이 8888이었는데 1111로 변경하였다.
이제 실행!
/run_jupyter.sh --allow-root --NotebookApp.token=''
접속이 되어서 확인해보니 저렇게 나온다!
-끝-
docker 접속 및 나가기
docker exec -it #### /bin/bash
exit
'개발 > Docker' 카테고리의 다른 글
[vscode] 원격서버에서 docker container 접속하기 (2) | 2021.02.06 |
---|---|
[Docker] centos 7에서 docker 설치하기 (0) | 2021.01.26 |
[Docker] Docker Hub에 Private repository에 docker image 올리기 (0) | 2021.01.26 |
[Docker] 처음하는 사람도 쉽게 Docker file 만들고 build 해보기 (0) | 2020.05.09 |
[Docker] iptables failed - No chain/target/match by that name 문제 해결하기 (0) | 2020.04.17 |