ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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.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가 생성된 것을 확인할 수 있다. 

     

     


     

     

     

    댓글

Designed by Tistory.