본문 바로가기

클라우드/도커(Docker)

(27)
도커 Docker gcc 컴파일러를 사용하여 이미지 만들기 더보기 # 바이너리만 있는 이미지 # ldd 공유 라이브러리를 출력해주는 명령어 # 참조하는 라이브러리 # libc 표준 라이브러리 # gcc 컴파일러로 실행파일을 만들어 준다 vagrant@docker:~$ sudo apt install gcc vagrant@docker:~$ mkdir hello vagrant@docker:~$ cd hello/ vagrant@docker:~/hello$ cat hello.c #include int main() { printf("Hello ldh World\n"); return 0; } vagrant@docker:~/hello$ gcc hello.c -o hello # gcc 소스코드 -o output vagrant@docker:~/hello$ ls hello hell..
도커 Docker Alpine (알파인) 이미지 busybox 최소한의 기능만 있는 리눅스 임베디드장치에 사용 패키지 관리자가 없음 소프트웨어 설치는 수동으로 -> apk 패키지 관리자를 만들어 단점 보완 =Alpine alpine(알파인) 이미지 슬림보다 더 작음 bash없음 sh(본쉘) 있음 musl 경량화 되어있는 c library 사용 알파인 리눅스를 이용하여 효율적이게 컨테이너를 사용 slim (슬림) 크기가 작은 이미지 더보기 # Python 일반 이미지와 slim 이미지, Alpine 비교 vagrant@docker:~/build/flask$ docker pull python:3 vagrant@docker:~/build/flask$ docker pull python:slim vagrant@docker:~/build/flask$ docker..
도커 Docker 멀티 컨테이너 관리 Compose Docker compose 도커 컨테이너를 다루는 도구 다수의 컨테이너를 하나로 통합하여 관리 인프라를 코드로 표현 하나의 서비스를 위해 여러개의 컨테이너를 올리는 경우 docker compose를 이용하여 컨테이너들을 관리 docker compose 는 링크옵션이 필요하지 않다 ,알아서 연결 됨 -> 쿠버네티스를 사용하면 docker compose 가 필요없다 쿠버네티스랑 호환이 되지 않아서 거의 사용하지 않는다 설치 https://docs.docker.com/compose/install/ Install Docker Compose docs.docker.com 더보기 vagrant@docker:~$ docker-compose --version docker-compose version 1.29.2, bui..
도커 Docker Flask를 이용한 간단한 앱 실행 더보기 # 가상환경 생성 vagrant@docker:~$ sudo apt install python vagrant@docker:~/build$ mkdir flask vagrant@docker:~/build$ cd flask vagrant@docker:~/build/flask$ sudo apt install python3-venv vagrant@docker:~/build/flask$ python3 -m venv mysite vagrant@docker:~/build/flask$ ls mysite # 가상환경 활성화 vagrant@docker:~/build/flask$ source mysite/bin/activate # Flask 설치 # Flask는 웹 애플리케이션 개발을 위한 파이썬 프레임워크 (mysit..
도커 Docker 레이어 (Layer) , Port (포트) 더보기 # ubuntu:20.04 Layer vagrant@docker:~$ docker inspect ubuntu:20.04 RootFS": "Layers": [ "sha256:feef05f055c989eea0367f5d3a2cba79896dd6d8a8b72bea2c729548a4ca5aef" #Dockerfile 생성 vagrant@docker:~/build$ vi Dockerfile FROM ubuntu:20.04 ENV DEBIAN_FRONTEND noninteractive # 패지키를 설치할때 대화형 모드로 물어보지 않는다 RUN ["apt", "update"] RUN ["apt", "install", "-y", "apache2"] ENTRYPOINT ["apachectl"] CMD ["-D",..
도커 Docker .dockerignore 파일 .dockerignore 파일 Dockerfile과 같은 디렉터리에 들어있는 모든 파일을 컨텍스트(context)라고 한다 특히 이미지를 생성할 때 컨텍스트를 모두 Docker 데몬에 전송 필요 없는 파일이 포함되지 않도록 컨텍스트에서 파일이나 디렉터리를 제외하고 싶을 때 .dockerignore 파일을 사용한다 더보기 vagrant@docker:~/build/web$ tree . ├── Dockerfile ├── conf │ └── ports.conf └── html ├── dev.html └── index.html 2 directories, 4 files # Dockerfile vagrant@docker:~/build/web$ cat Dockerfile FROM ubuntu:20.04 ENV DEBI..
도커 Docker Dockerfile 지시어 지시어 Dockerfile reference docs.docker.com CMD / ENTRYPOINT Dockerfile 로 이미지 생성 1 더보기 # 디렉토리 생성 vagrant@docker:~$ mkdir build vagrant@docker:~$ cd build/ # Dockerfile 작성 vagrant@docker:~/build$ vi Dockerfile FROM centos:7 COPY aaa /tmp/aaa # 이미지 생성 vagrant@docker:~/build$ docker build -t myimage:v1 . Sending build context to Docker daemon 3.072kB Step 1/2 : FROM centos:7 ---> 8652b9f0cb4c Step 2/2..
도커 Docker 이미지 제작 2 더보기 #컨테이너 우분투에 아파치 설치 vagrant@docker:~$ docker run -it ubuntu bash root@395599157e3b:/# apt update root@395599157e3b:/# apt install apache2 # 다른 터미널에서 확인 vagrant@docker:~$ curl 172.17.0.3 -I curl: (7) Failed to connect to 172.17.0.3 port 80: Connection refused # 아파치 실행 후 다른터미널에서 확인 root@395599157e3b:/# apachectl -D FOREGROUND vagrant@docker:~$ curl 172.17.0.3 -I HTTP/1.1 200 OK Date: Fri, 02 Jul..