일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- hackerrank
- Real or Not? NLP with Disaster Tweets
- 자연어처리
- 파이썬
- 편스토랑 우승상품
- dacon
- Docker
- programmers
- 데이콘
- Baekjoon
- 프로그래머스 파이썬
- AI 경진대회
- 코로나19
- SW Expert Academy
- 캐치카페
- leetcode
- Git
- github
- 우분투
- 금융문자분석경진대회
- PYTHON
- gs25
- Kaggle
- 더현대서울 맛집
- 편스토랑
- 맥북
- 백준
- ChatGPT
- ubuntu
- 프로그래머스
- Today
- Total
목록
반응형
Programming/Docker (12)
솜씨좋은장씨
최근 업무를 하면서 협력사가 java로 개발한 war 파일을 Docker 환경에서 배포 해야할 일이 있었습니다. 평소에 Python 을 사용하여 개발하고 Docker linux 환경에 Python 으로 개발한 API 를 배포하는 식으로 만 개발을 해왔다보니 초반에 삽질을 많이 하였지만 끝까지 해보고나니 생각보다 아주아주아주 쉬웠습니다. 배포 방법을 테스트하는데에는 인터넷에서 다운로드 받은 SampleWebApp.war 파일을 활용하여 테스트를 진행하였습니다. 🧐 Dockerfile 작성 $ vi Dockerfile Dockerfile FROM tomcat:8.5.46-jdk8-openjdk RUN apt-get update RUN apt-get install -y tzdata ENV TZ=Asia/Seo..
서버에 올라가있는 도커 컨테이너 이미지 속 라이브러리를 업데이트를 해야할 때 업데이트를 하는 방법은 1. 업데이트 된 버전으로 다시 설치하고 도커 이미지를 다시 말아서 다시 올리기 2. docker exec -it [컨테이너명] /bin/bash 또는 docker exec -it [컨테이너명] /bin/sh 로 도커 컨테이너에 접속한 뒤 해당 라이브러리만 지웠다가 다시 설치하고 나온 뒤에 docker restart [컨테이너명] 해주기 위와 같이 2가지 방법이 있습니다. 1번의 경우에는 서버를 내렸다가 올려도 변경한 버전이 바뀌지 않고 계속 유지가 되지만 2번의 경우에는 별도의 작업을 진행해주지 않으면 서버가 내려갔다가 올라갔을때 처음에 이미지를 생성할 때 설치했던 버전으로 다시 돌아가서 서버가 내려갔다..
👨🏻💻 발생한 에러 오늘 팀원 중에 한 분이 평소와 같이 작업한 api를 Docker Image로 빌드하고자 FROM ubuntu:16.04 ENV HOME /home RUN mkdir -p ${HOME} WORKDIR ${HOME} ## set OS RUN apt update RUN apt-get install -y software-properties-common RUN add-apt-repository ppa:deadsnakes/ppa RUN apt update RUN apt install -y python3.7 python3.7-dev ## install app dependency RUN apt update ARG DEBIAN_FRONTEND=noninteractive RUN apt install..
개발을 하다보면 Docker Container 내부로 들어가서 내용을 확인해보아야 할 경우가 있습니다. $ docker exec -it [컨테이너명] /bin/bash 보통 위의 명령어를 활용하여 컨테이너 내부에 접속하곤하는데 OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown 종종 위와 같은 에러가 발생하며 접속이 불가한 경우가 있습니다. 👨🏻💻 원인 이런 경우는 Docker 이미지가 Alpine 이미지일 경우 그럴 수 있습니다. 👨🏻💻 해결 방법 해..
회사에서 사용하는 서버가 여러개가 되면서 새로운 서버에서 만든 계정에서 docker 명령어를 사용하려고 하면 $ docker ps Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/ json": dial unix /var/run/docker.sock: connect: permission denied 위와 같이 권한이 없다고 나옵니다. $ sudo docker ps 오류가 나지 않는다하면 항상 docker 명령어를 사용할 때 sudo 를 붙여서 사용해야합니다. 🤩 해결 ..
오랜만에 mac에서 Docker ( 도커 ) 를 사용하고자 $ sudo docker ps 현재 어떤 컨테이너가 떠있는지 확인해보기 위해 위의 명령어를 실행했는데 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 위와 같은 오류가 발생했습니다. 이는 현재 백그라운드에 Docker( 도커 )가 실행되고있지 않기 때문입니다. 다음은 각 OS 별 해결 방법 입니다. 👨🏻💻 mac OS 의 경우 Docker Desktop on Mac을 설치하고 실행한 뒤에 다시 명령어를 실행해보면 $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS P..
FROM ubuntu:16.04 RUN apt-get update && \ apt-get install -y --no-install-recommends apt-utils && \ apt-get -y install software-properties-common && \ add-apt-repository -y ppa:deadsnakes/ppa && \ apt-get update --fix-missing && \ apt-get -y install wget && \ apt-get -y install curl && \ apt-get -y install bzip2 && \ apt-get -y install libpq-dev && \ apt-get -y install libssl-dev && \ apt-get -y..
ubuntu18.04 베이스 이미지에 python3.6을 설치한 도커 이미지에서 opencv ( opencv-python )를 설치하고 실행을 하려고 하니 ImportError: libGL.so.1: cannot open shared object file: No such file or directory 위와 같은 오류가 발생하게 되었습니다. 이는 도커 이미지를 생성할때 apt-get을 활용하여 libgl1-mesa-glx라는 것을 설치해주면 해결이 가능합니다. 이를 설치하기 위해서는 이미지를 build 할때 활용하는 Dockerfile안에 설치하는 구문을 추가해주면 됩니다. Dockerfile ~~~~ 생략 RUN apt-get update RUN apt-get -y install libgl1-mesa-..
docker에서 mecab을 활용하려고 이것 저것 여러 페이지를 참고하며 시도해보았던 내용 중 성공했던 내용에 대해서 적어보려 합니다. Dockerfile FROM ubuntu:16.04 # Python RUN apt-get update && \ apt-get install -y --no-install-recommends apt-utils && \ apt-get -y install software-properties-common && \ add-apt-repository -y ppa:deadsnakes/ppa && \ apt-get update --fix-missing && \ apt-get -y install --fix-missing python3.6 && \ apt-get -y install --fi..
docker를 사용하면서 코드를 수정하면 이미지를 다시 만들어야 하는데 코드 내에 API를 호출할때 활용하는 url, endpoint 정보나 여러 설정값들을 바꿀때마다 다시 이미지를 만들고 실행하는데 번거로움이 있었습니다. 이런 설정값들을 좀 더 편하게 수정할 수 있는 방법을 최근에 알게되어 적어보려 합니다. 먼저 python 코드 내에서 설정값을 적는 부분을 수정하여 줍니다. config.py 수정 전 NER_INFO = { "ip":"0.0.0.0", "port" : "23232" } config.py 수정 후 import os NER_INFO = { "ip":os.environ.get("NER_IP", "0.0.0.0"), "port":os.environ.get("NER_PORT", "23232")..
docker-compose.yml 파일을 만들고 난 이후 docker-compose up -d 명령어를 통해서 실행하려고 하니 bash: docker-compose: command not found docker-compose 명령어를 찾을 수 없다고 나와 찾아보니 docker 설치 이외에 추가로 설치를 해주어야한다고 되어있어 설치방법을 적어보려합니다. 설치 명령어 sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s`-`uname -m` | sudo tee /usr/local/bin/docker-compose > /dev/null 위의 명령어를 통해서 docker-compose를 다운로..
Elasticsearch가 설치된 서버와 api를 실행할 서버가 같으면서 개발한 API 에서 Elasticsearch를 연결할 때 es_client = Elasticsearch("http://localhost:9200") 위와 같이 Python과 Elasticsearh 라이브러리를 활용하여 연결하는 경우 Python과 Flask를 활용하여 개발한 API를 담은 이미지를 만들고 docker run -it -d --name api_contatiner -p 5000:5000 api_image 위의 명령어를 활용하여 container로 실행한 후 http://localhost:5000/search?query=%EC%95%88%EB%85%95 query를 보내 호출을 하려고하면 app.py가 실행되면서 Elast..