반응형 프로그래밍/도커14 Ubuntu Docker Image로 docker in docker 만들기 윈도우에서 리눅스 환경으로 개발을 하고싶거나 할 때 사용하면 유용할 것 같습니다. 윈도우에서 도커를 설치했다면 Dockerfile을 만들어 줍니다. FROM ubuntu:latest RUN apt-get update && \ apt-get install -y apt-transport-https ca-certificates curl software-properties-common RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - RUN add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ st.. 2023. 4. 1. 도커 Images size total은 실제 용량과 같을까? https://hwan-shell.tistory.com/370 도커의 Image layer 이 글을 작성하게 된 계기는 Container를 띄울 때 Container에 생성한 파일과 디렉토리들이 어디에 저장되고 관리되는지 궁금해서 찾다가 작성하게 되었습니다. 우리는 Docker를 사용할 때 아무생각 없 hwan-shell.tistory.com 도커에서는 Image layer라는 개념을 통해 공통된 Image layer를 공유합니다. $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE hwani 1 3801c0b7b8a8 7 minutes ago 999MB hwani 2 3801c0b7b8a8 7 minutes ago 999MB node latest 0e0ab07.. 2023. 3. 30. 도커 syslog, rsyslog를 사용하여 log수집하는 방법. 도커를 실행하면 기본적으로 모든 stdout, stderr에 대한 출력 값을 볼 수 있습니다. $ docker logs [Container ID] 를 입력하면, 도커에서 실행된 모든 stdout, stderr를 확인할 수 있습니다. 1. syslog syslog는 유닉스/리눅스의 로그 정보를 담고 있는 파일입니다. 도커 log는 --log-driver=syslog 명령어를 사용해서 Host의 syslog로 전송이 가능 합니다. $ docker run -it --log-driver=syslog ubuntu root# echo hwani 그 후 컨테이너를 빠져나와서 Host의 syslog를 확인해보면 hwani라는 단어가 찍힌 것을 확인할 수 있습니다. # cat /var/log/messages | grep.. 2023. 3. 21. 도커의 네트워크 (브릿지, 호스트, 논) Docker로 Container를 만들면 기본적인 네트워크가 만들어집니다. 각 컨테이너마다 가상 네트워크 인터페이스를 만드는데, 이 인터페이스는 veth로 시작합니다. 그리고 veth로 시작하는 인터페이스는 각 컨테이너마다 생성되게 됩니다. [root@ip-172-31-11-2 overlay]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9b771db5bd22 mysql "docker-entrypoint.s…" About an hour ago Up About an hour 3306/tcp, 33060/tcp reverent_hypatia 73d16586cf36 ubuntu "/bin/bash" 26 hours ago Up 41 sec.. 2023. 3. 14. 도커의 Image layer 이 글을 작성하게 된 계기는 Container를 띄울 때 Container에 생성한 파일과 디렉토리들이 어디에 저장되고 관리되는지 궁금해서 찾다가 작성하게 되었습니다. 우리는 Docker를 사용할 때 아무생각 없이 Image를 pull받아서 Docker container를 실행합니다. Docker Image를 받아오면 sha 256으로된 hash값들이 보이고 이를 pull하면서 받오게 됩니다. 저런 hash값들의 정체가 무엇인지, Container에서 파일과 디렉토리를 생성하면 어디에 저장되는지 등을 알아보려 합니다. 1. Docker image layer Docker image는 layer로 이루어져 있으며, 각 layer 계층은 모두 Read only로 구성됩니다. 그 후 마지막 layer 위에 Co.. 2023. 3. 13. 도커 볼륨/마운트 설명과 차이점. Docker를 실행하게 되면 프로세스 위에 Container가 돌아가게 됩니다. 이런 Conatainer들은 Docker image를 기반으로 만들어지고 실행됩니다. 이러한 Container들은 Image layer위에 write형식으로 데이터들을 저장하게 됩니다. 그리고 이러한 것들을 sha256 digest 형태로 저장하고 관리하게 됩니다. 저 layer는 Overlay2 드라이버로 저장되며, /var/lib/docker/image/overlay2/layerdb/sha256 경로에 저장되게 됩니다. 여기에 Container에 작성되고 저장된 모든 데이터와 파일들이 담겨있습니다. 단, Container가 지워지면 기존에 write형식으로 저장되었던 layer도 지워지게 됨으로, Image로 해당 Con.. 2023. 3. 12. Docker에서의 -i -t의 의미 Docker를 사용할 때, 도커 컨테이너를 실행 후 해당 컨테이너에 접근하기 위해서 위 옵션을 붙여서 사용합니다. 물론 -d(Detached)로 실행한다면 위 옵션은 필요하지 않겠죠. 그럼 -i와 -t는 무슨 역할을 하며 이거 2개의 옵션이 없으면 도커 컨테이너 내부에 접근해서 명령어를 실행하지 못할까요? 이것을 설명하기에 앞서 UNIX는 다음과 같은 말을 합니다. "everything is a file". 이 글을 읽고 저 문장이 무엇을 뜻하는지 이해하시면 성공한 겁니다~ 1. -i (STDIN) https://docs.docker.com/engine/reference/commandline/exec/ docker exec docker exec: The `docker exec` command runs a.. 2023. 1. 15. docker cli vs Dockerfile vs docker-compose 1. Docker docker cli는 단일 컨테이너를 위한 명령어들을 제공합니다. 예를들어 이미지를 생성하려면, $ docker pull [IMAGE] 컨테이너를 생성하려면 $docker create [OPTIONS] IMAGE [COMMAND] 즉, 단일 컨테이너에 대해서 만들거나, 실행하거나 하는 용도로 사용되는 명령어입니다. 2. Dockerfile 도커 파일은 이미지를 생성할 때, 해당 이미지 안에 기본적으로 어떤 소프트웨어를 설치할지 결정하는 도구입니다. 예를들어 $ docker pull ubuntu 를 사용하여 이미지를 받으면 우분투만 들어있는 깡통 이미지만 받아와 집니다. 해당 이미지에 저희는 컨테이너를 만들고 접속하여 원하는 소프트웨어를 설치하는 작업을 거쳐야 합니다. 하지만 Docker.. 2021. 9. 19. 도커] 외부에서 도커 컨테이너의 웹페이지에 접근하는 방법. 1. 들어가기 한가지 가정을 해 봅시다. 어떤 언어가 되었건 도커를 사용해 웹서버를 만들었습니다. 그럼 단순히 ip주소와 port번호를 입력한다고 해당 웹 페이지에 접속할 수 있을까요?? 결론은 설정을 단 하나도 안해놨다면 불가능 합니다. 그럼 지금부터 접속하는 방법에 대해, 원리를 설명하면서 예기해 보겠습니다. 2. 필요한 설정. 도커의 --cap-add=NET_ADMIN를 이용한 컨테이너 네트워크 인터페이스 설정.컨테이너를 만들 때 도커 포트와 실제 OS의 포트를 동기화.컨테이너에 올라와있는 서버 포트 개방.이정도가 되겠습니다. 3. 포트 동기화 포트 동기화를 하는 이유 설명. 가정.1. 현재 도커에는 우분투 이미지가 올라가 있고 우분투 위에 파이썬으로 만든 웹페이지가 있다고 가정합니다.2. 웹페이지.. 2020. 5. 16. 도커] Windows10 VSCode와 도커 리눅스 연결하기 1. 들어가기본 글은 Windows 10 환경에서 VSCode와 도커 컨테이너를 연결하는 글입니다. 2. 준비물1. VSCode2. 도커 리눅스 컨테이너3. 해당 리눅스의 update, upgrade, ssh 설치여부 3. VSCode 셋팅Window 10 환경에 VSCode를 설치 했다면 확장프로그램 "Remote Development" 를 설치해 줍니다. 설치가 완료되면 도커 리눅스 컨테이너로 넘어가 줍니다. 4. 도커 컨테이너 리눅스 셋팅 ※ 리눅스에 update, upgrade, ssh 설치가 되신분은 해당 부분은 넘어가셔도 됩니다. 1. $ apt-get update 2. $ apt-get upgrade 3. $ apt-get install ssh 5. Windows 10 셋팅 완성이 되었다면 .. 2020. 5. 16. 도커] 셋팅이 끝난 이미지 파일을 docker hub에 업로드 하기 도커로 리눅스를 설치한 후 해당 리눅스 셋팅이 다 끝났으면 Docker Hub에 해당 이미지 파일을 저장할 수 잇습니다. https://www.docker.com/에서 간단한 회원가입을 마친 후 로그인을 해줍니다. 로그인이 완료됐다면 새로운 이미지 파일을 만들어 줍니다. 우선 이미지를 만들 원본파일이 되는 컨테이너를 검색합니다. 맨 끝에 NAMES를 보시면 해당 컨테이너의 이름이 나옵니다. NAMES 이름으로 이미지 파일을 만들어 줍시다. commit -m 'vim_install' 이 부분은 코멘트를 달아주는 것으로 저는 vim을 설치했기 때문에 코멘트를 이런식으로 달았습니다. ubuntu_server이녀석은 제가 여지껏 작업했던 컨테이너의 이름입니다.(ps -a했을 때 나온 녀석, 2번 사진 참조) d.. 2020. 5. 16. 도커] Windows 10에서 도커로 우분투 설치하기 우선 windows 10에 있는 powershell을 켜줍니다. 도커를 정상적으로 설치가 됬다면 다음과 같은 그림이 나오게 됩니다. 도커에 대한 명령어 레퍼런스는 https://docs.docker.com/engine/reference/run/#docker-run-reference링크를 참조하면 됩니다. 그럼 이제 도커 위에 이미지 파일을 설치해보겠습니다. $ docker search 명령어를 통해 우분투 목록을 확인해 줍니다. 제일 위에있는것이 우분투 최신 버전이므로 아래와 같이 다운받아 줍니다. $ docker pull ubuntu 다운로드 완료 후$ docker images명령어를 입력하면 아래와 같이 나올 것입니다. 그럼 해당 이미지파일을 컨테이너로 변경하는 작업을 해야 합니다. docker cr.. 2020. 5. 15. Window10 - 도커 설치하기(튜토리얼) 도커 홈페이지https://www.docker.com/ 이 글은 2020-05-15 일날 작성된 글입니다.이 이후엔 바뀌었을수도 있으니 참고 바랍니다. 도커 홈페이지에서 Windows를 다운받아 줍니다. .exe파일을 실행하고 설치하면 아래와 같은 체크박스가 오는데 다 체크하고 넘어가줍니다. Windows 10 Home Windows 10 Pro 설치가 완료되면 다음과 같은 화면이 나오고 제시작을 해줍니다. 실행하고 나면 도커 튜토리얼을 할지 안 할지 나오는 창이 생깁니다. 그냥 사용하실 분들은 스킵 튜토리얼을 누르시면되고 저 처럼 처음이신 분들은 파란색 박스를 누르시는걸 추천드립니다. 여기 아래는 튜토리얼 설치 방법이니 굳이 안보셔도 됩니다. 첫번재 화면에서 git clone으로 getting-star.. 2020. 5. 15. Linux) Doker와 Container의 탄생과 설명, 차이점 ※이 글은 제가 인터넷으로 공부한걸 바탕으로 작성된 글입니다. 잘못된 내용이나 보충해야할 내용이 있으면 댓글이나 E-mail로 피드백 해주시면 감사하겠습니다. What is Docker? 도커는 리눅스의 컨테이너라는 기술(LXC)를 이용한 소프트웨어로 지금은 자체 라이브러리인 libcontainer를 사용하고 있습니다. 위 말만 들으면 도커가 뭐하는건지, LXC는 뭐고 libcontainer는 뭔지... 감이 안잡힙니다. 흔히 웹 검색으로 알 수 있는 지식은 다음과 같습니다. 1. 도커를 이용하면 개발환경에 구에받지 않고 손쉽게 내가 사용하던 개발환경을 구축할 수 있다. 2. 도커를 이용하면 여러개의 독립된 프로세스를 띄워 마이크로서비스가 가능해진다. 3. 도커를 이용하면 배포가 쉽고 수정도 쉽다. 4... 2019. 11. 13. 이전 1 다음 728x90 반응형