【Docker】 docker 실습/ docker sudo 없이 실행하기

(docker) docker 실습/ docker sudo 없이 실행하기

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.0

tenserflow-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가 생성된 것을 확인할 수 있다.

img


© All rights reserved By Junha Song.