-
[docker] docker 실습/ docker sudo 없이 실행하기하면서 이런이런것을 공부했다[연구노트]/Git, Docker, Pytorch 2020. 2. 21. 01:55
1.원하는 docker ubuntu Image를 만들어보자
$ sudo docker run -it --name ubun18 ubuntu:latest bash
ls
cat /etc/issue
apt update
apt install python
python
sudo apt install python3-dev python3-pip
pip3 --help
pip3 install numpy
python3 --version
python3
exit$ sudo docker start <container ID>
$ sudo docker attach <container ID>$ sudo docker container ls -q # container ID만 출력
$ docker commit <container ID> ub_with_numpy:1
2.tensorflow를 실행해보자
$ sudo docker pull tensorflow/tensorflow:latest
$ sudo docker run -it tensorflow/tensorflow bash
$ docker run -it --rm -v /home/junha/Documents:/tmp -w /tmp tensorflow/tensorflow bash
주피터 실행
$ docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-py3-jupyter
( $ docker run --runtime=nvidia -it -rm -p 8888:8888 -p 6006:6006 tensorflow/tensorflow:nightly-gpu-py3-jupyter )
$ sudo docker run -it --rm -p 8888:8888 -p 6006:6006 --name tf16 tensorflow/tensorflow:1.6.0tenserflow-gpu 실행
$ sudo docker run --runtime=nvidia -it --rm -p 8888:8888 -p 6006:6006 --name tf16 tensorflow/tensorflow:1.6.0-gpu-py3
여기서 --rm은 container를 exit하면 자동으로 container를 삭제하는 옵션이다. 따라서 나는 아래와 같은 명령어를 많이 사용했다.
그리고 8888은 주피터를 위한 서버이고, 6006은 텐서보드를 위한 서버라고 한다.
$ docker run --runtime=nvidia -it -p 8888:8888 -p 6006:6006 --name tf16_rbox 6bdfac5fa12a
참고로 이미지는 나의 허브에 있는 이미지이다.
[sb020518/tf16_with_rbox latest 6bdfac5fa12a 2.99GB]
3.sudo 없이 실행하기
아래의 명령어를 순서대로 처준다.
$ sudo groupadd docker
$ sudo usermod -aG docker $USER #그대로 치기 users(whoami)로 바꾸지 마세요
$ reboot # 컴퓨터를 한번 껐다 켜준다.
이제 sudo 없이 docker가 실행이 될것이다. 하지만
WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied 이게 뜬다면, 아래의 2줄을 터미널에 차근히 입력해준다.
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R
4.docker image push하기
https://nicewoong.github.io/development/2018/03/06/docker-commit-container/
https://seulcode.tistory.com/227
정리
우선 docker hub에 로그인 한다.
$ docker login
이미지의 이름(태그)를 바꾸어서 복제를 한다.
$ docker tag <old image> <sb020518즉 userID>/<new docker-image-name[:tag-name]>
이제 hub로 push해보자
$ docker push <sb020518즉 userID>/<new docker-image-name[:tag-name]>
이와 같이 hub에 새로운 image가 생성된 것을 확인할 수 있다.
'하면서 이런이런것을 공부했다[연구노트] > Git, Docker, Pytorch' 카테고리의 다른 글
git blog 만들기 순서 (1) 2020.04.03 [docker] windows 10 home 그리고 docker desktop (0) 2020.03.14 [Docker] Docker 개념 및 기본 명령어 (0) 2020.02.18 [Git] Git 기초와 활용3 Readme/Rebase/onfig (Ubuntu terminal) (0) 2020.02.18 [우분투] 우분투 명령어 및 프로세스 (0) 2020.02.18