Docker 19

[Docker] ImportError: libGL.so.1: cannot open shared object file: No such file or directory

!apt-get update -y && apt-get install -y libgl1-mesa-glx && apt-get install -y libglib2.0-0 Docker 환경에서 OpenCV를 설치하는 과정에 발새하는 오류 유형 중 하나다. 이는, cv2에 해당하는 의존 패키지가 없을 때 발생하는 문제로, 아래 코드를 추가하면 쉽게 해결이 가능하다. RUN pip install opencv-python RUN apt-get update && apt-get install ffmpeg libsm6 libxext6 -y RUN apt-get update -y && apt-get install -y libgl1-mesa-glx Docker Image를 불러올 때부터 처리를 하고 싶으면 아래와 같이 작성할..

Docker 2023.11.21

[Docker] ubuntu에서 jupyter notebook 시작하기

window 환경을 가지고 있는 사람이라면 간혹가다 ubuntu 환경에서 작업을 해야할 필요가 있다. 이때 기존에 사람들이 이쁘게 만들어놓은 환경을 사용해도 되지만 우리가 한 번 처음부터 만들어보자. 본인은 window를 사용하고, Linux는 다루어본 적 없어서 이 과정이 매우 생소해 많은 도움이 되었다. 일단 Docker에서 기본 ubuntu 환경을 받아오자. docker pull ubuntu 별도의 ubuntu 버전을 설정하지 않는다면 가장 최신의 버전을 불러온다. 제대로 설치가 되었는지 확인하자. docker images 우리는 이전에 받아온 이미지로 컨테이너를 생성하는 방법도 배웠다. 또한 포트를 연결하는 방법에 대해서도 다루어보았다. 우리 컴퓨터의 포트와 컨테이너의 포트를 연결시켜줌으로써 우리..

Docker 2022.03.28

[Docker] -e 란? 컨테이너 내에서 환경 변수 설정하기

-e는 컨테이너 내부에서 환경 변수를 설정하는 명령어이다. MySQL 이미지를 설치해 환경 변수를 설정해보자. $ docker run -d --name MySQL_test \ -e MYSQL_ROOT_PASSWORD=1234 \ -e MYSQL_DATABASE=wordpress mysql:5.7 $ docker run -d -e WORDPRESS_DB_HOST=mysql \ -e WORDPRESS_DB_USER=root \ -e WORDPRESS_DB_PASSWORD=1234 \ --name wordpress --link wordpressdb:mysql -p 80 wordpress -e 로 MySQL 각각의 환경 변수를 설정해줄 수 있다. CONTAINER ID IMAGE COMMAND CREATED S..

Docker 2022.03.04

[Docker] -i, -t, -d 란?

-i, -t 옵션은 컨테이너와 상호(interactive) 입출력을 가능하게 해준다. t는 tty를 할당하고, i는 표준 입출력을 사용한다. -d 옵션은 -i, -t와는 달리 백그라운드로 작동한다. -it 옵션을 적용하면 컨테이너가 생성과 동시에 실행되며 /bin/bash 로 접근하게 된다. 하지만 -d를 사용하게 되면 정지된 컨테이너만 생성된다. 입출력이 없는 상태로 컨테이너를 실행하는 것이다. $ docker run -it --name test_it ubuntu:18.04 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 254fe0d44a41 ubuntu:18.04 "bash" 5 seconds ago Up 5 seconds tes..

Docker 2022.03.04

[Docker] 컨테이너를 외부에 노출시키자!

도커 내에서 컨테이너를 생성하면 이 컨테이너는 외부에서 접근할 수 없고, 도커가 설치된 로컬 호스트에서만 접근할 수 있다. 외부에서 접근을 할 수 있도록 설정하기 위해서는 우리의 로컬 호스트 포트와 토커 컨테이너의 포트에 연결시켜주어야 한다. 이 과정을 포트 포워딩, 바인딩 등으로 부른다. 1. 컨테이너 IP 주소 확인하기 컨테이너의 IP 및 포트와 로컬 호스트의 IP 및 포트를 연결시키기 위해서는 당연히 컨테이너의 IP 주소를 알고 있어야 한다. IP 주소를 확인하기 위해서는 아래와 같은 작업을 수행하면 쉽게 확인이 가능하다. $ ifconfig eth0: flags=4163 mtu 1500 inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255 e..

Docker 2022.03.04

[Docker] ifconfig : command not found error

컨테이너의 가상 IP 주소를 받기 위해서는 ifconfig를 실행해야된다. 하지만 bash에서 ifconfig를 실행하면 아래와 같은 에러가 출력될 것이다. # ifconfig bash: ifconfig: command not found 그럴 경우 net-tools를 설치해주면 간단하게 해결된다. # apt-get update # apt-get install net-tools # ifconfig ifconfig를 실행했을 때 eth0 인터페이스와 로컬 호스트인 lo 인터페이스가 존재한다. 각각의 IP 주소를 입력해 컨테이너를 외부에 노출 시킬 수 있다.

Docker 2022.03.04

[Docker] VSCode에서 Docker Container 접근하기

깃$^\mathsf{Git}$ 내에서 실행시키고 싶은 레파지토리를 원하는 환경에 가지고 온 후 시작하자. 리눅스 기반인 경우 바로 git clone을 통해서 실행이 가능하지만, 윈도우의 경우 command 창에서 git clone이 실행되지 않기 때문에 git bash라는 bash shell을 설치한 후 가지고와야 한다. 설치가 되었다고 가정하고 분석을 수행하자. 본인은 PyTorch-GAN를 가지와서 git clone을 수행했다. PyTorch-GAN의 구조는 아래와 같다. 우리는 C:\PyTorch-GAN\implementations\aae\aae.py 파일을 VSCode로 가지고와서 디버깅 해보는 작업을 수행해볼 것이다. VSCode에서 사용하기 전 일단 먼저 pytorch가 설치된 이미지를 도커에..

Docker 2022.03.03

[Docker] 이미지(Image)를 Docker hub에 Push하기

도커를 한 개의 서버에서 작업을 하고, 본인이 만든 도커 이미지를 다른 서버에서 활용하고 싶을때 도커 허브(Docker hub)에 Push한 후 다른 서버에서 pull을 통해 다른 서버에서 가져갈 수 있을 것이다. Push와 pull에 대한 용어를 잘 모르겠다면 이전 글을 참고하자. 도커 허브에 업로드 하지 않고, 본인이 만든 Dockerfile을 전달해주는 방법도 있고, 이미지를 저장해서 tar file이나 다른 형태로 변환해 전달해주는 방법도 있을 수 있다. 일단 먼저 Push 하는 방법에 대해서 알아보자. 1. Upload Docker Hub 도커 허브에 업로드 하기 위해서는 당연히 도커 허브에 계정이 있어야할 것이다. 도커 계정을 생성한 후 로그인 해보자. 로그인 한 후 Repositories에 ..

Docker 2022.03.03

[Docker] exec, attach, run 비교하기

도커에서 컨테이너를 실행시킬 경우 run, exec, attach 등을 사용해 컨테이너에 접근해본 적이 있을 것이다. 그렇다면 각각의 명령어가 어떠한 차이점이 존재하는지에 대해서 알아보자. 이번 글에서는 exec를 기준으로 run와 attach에 대해서 각각 비교해볼 것이다. exec vs attach exec와 attach는 둘다 컨테이너에 접속하는 명령어다. 둘다 컨테이너가 실행되고 있을 때 사용할 수 있으며, 만약 docker ps 를 입력했을 때 실행 중인 컨테이너가 없다면 실행할 수가 없으므로 새롭게 컨테이너를 실행시키든, 죽은 컨테이너를 살리든 하는 형태로 진행해야만 한다. exec exec는 컨테이너 상태를 디버깅하기 위한 용도로 주로 사용된다. exec는 컨테이너 외부에서 접근해 코드를 작..

Docker 2022.03.03
반응형