도커 호스트와 컨테이너간 파일 공유하기
도커 컨테이너에 도커 볼륨을 만들어 붙이는 것 외에 파일 공유하는 방법 하나를 더 알아볼게요. 도커 호스트의 디렉터리를 도커 컨테이너의 파일 시스템에 마운팅 하는 방법이에요. 어떻게 하는지 먼저 볼게요. ➜ ~ mkdir shared ➜ ~ cd shared ➜ shared echo "Hello xodwk" > salute.txt ➜ shared docker container run --rm -d -it -v $HOME/shared/:/data/ alpine sh 2f97ed6853277bd71d251dd7d1490cfc04215766b8d5dd7b32924582c27f578c ➜ shared docker exec -it 2f97ed sh / # cat /data/salute.txt Hello xodwk..
no image
도커 볼륨 맛보기
도커 이미지로 컨테이너를 실행시키고 내용을 변경한 후 컨테이너로 이미지를 만들어봤었어요. 이 컨테이너로 이미지를 만들 때 변경된 부분은 read/write layer 라는 곳에 있어요. 만약에 어떤 이미지를 가지고 컨테이너를 만들고 내용을 수정했다가 이 컨테이너로 이미지를 따로 만들지 않고 컨테이너를 삭제하면 그 변경된 부분은 사라져요. https://xodwkx2.tistory.com/31 도커를 활용해 MongoDB 서버 만들기 도커를 활용해서 몽고디비 서버를 만들어 보아요. 먼저 도커 허브에서 mongo를 검색 해볼게요. mongo Official Image를 눌러서 들어가보면 아래와 같은 걸 볼 수 있어요. 오른쪽에 docker pull mongo 라고 써 xodwkx2.tistory.com 에 ..
no image
도커를 활용해 MongoDB 서버 만들기
도커를 활용해서 몽고디비 서버를 만들어 보아요. 먼저 도커 허브에서 mongo를 검색 해볼게요. mongo Official Image를 눌러서 들어가보면 아래와 같은 걸 볼 수 있어요. 오른쪽에 docker pull mongo 라고 써있는 거 클릭. 터미널에 붙여넣고 실행해볼게요. ➜ ~ docker pull mongo Using default tag: latest latest: Pulling from library/mongo 16ec32c2132b: Already exists 6335cf672677: Already exists cbc70ccc8ebe: Already exists 0d1a3c6bd417: Already exists 960f3b9b27d3: Already exists aff995a136b4..
도커 네트워크 다루기 -3
사용자 정의 브리지 네트워크 도커 네트워크의 기본 브리지 네트워크 외에 사용자 정의 브리지 네트워크를 만들 수 있어요. 사용자 정의 브리지 네트워크는 어떻게 만들고 어떻게 사용하는지, 기본 브리지 네트워크도 있는데 사용자 정의 브리지 네트워크는 왜 필요한지에 대해서 알아봐요. ➜ ~ docker network create xodwknet0 384b97f3858e56d6d95107b339499c4bc20163bd6f7fdd30fee11ccc37c6ed66 ➜ ~ docker network ls NETWORK ID NAME DRIVER SCOPE 8d3458727d03 bridge bridge local 3bec2ba8f217 host host local 3ace32da71f8 none null local ..
도커 네트워크 다루기 -2
이전에 기본 설정인 bridge 모드와 host 모드 그리고 null 모드까지 모두 봤어요. 그런데 어떠한 필요에 의해서 컨테이너의 서비스들이 같은 IP를 써야 하는 경우가 있을 수 있어요. 그럴 때는 어떻게 해야 할까요? 간단한지는 잘 모르겠지만 컨테이너 하나에 2개의 서비스를 넣는 방법이 있을 수 있겠네요. 하지만 이런 방법은 무슨무슨 법 위반이래요. 이럴 때 사용할 수 있는 좋은 방법이 있는데 바로 IP를 공유하는 거예요. 시간 날 때 그림을 그려서 올려보도록 할게요. 우선은 설명하자면 도커가 컨테이너를 생성하면서 그 컨테이너를 위한 네트워크 네임스페이스를 생성하고 가상 인터페이스도 만들어서 그 인터페이스에 IP도 할당해요. 서비스 1이 돌아가는 컨테이너를 만들면서 네트워크를 bridge도 아니고 ..
no image
도커 네트워크 다루기 -1
도커 데몬은 실행되면서 docker0라고 하는 가상 브리지 네트워크 인터페이스를 만들어요. 도커 데몬이 돌아가고 있는 시스템에서 ip addr 명령을 실행하면 아래와 같이 docker0라는 인터페이스가 생성되어 있는 것을 볼 수 있어요. ➜ ~ ip addr show docker0 3: docker0: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:1a:08:d0:64 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever inet6 fe80::42:1aff:fe08:d064/..
no image
도커 이미지 다루기
image creating from a container Dockerfile로 이미지를 빌드하는 건 해봤어요. 이번에는 컨테이너를 이미지로 만드는 걸 해볼 거예요. 먼저 gninx:1.14 이미지로 컨테이너를 하나 만들고 docker ps 명령으로 잘 돌아가는지 확인해요. 그리고 잘 돌아가는 걸 확인했으면 docker exec 명령으로 컨테이너에 쉘로 접속해요. ➜ ~ docker run -d --name xodwkx nginx:1.14 04f0ef3bb0e5ecc3adb949a727ad3723318038e4f337a57e59e0da23220dd603 ➜ ~ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 04f0ef3bb0e5 nginx..
no image
도커 컨테이너 다루기 -2
도커 컨테이너에 문제가 생겨 실패한 상태가되면 도커 데몬이 컨테이너를 재시작하게 하면 좋을 것 같아요. 이럴 때 사용하는 게 --restart라는 옵션이에요. 아래는 on-failure:3이라는 옵션을 줘서 3번까지만 재시작하도록 했어요. 그리고 docker container inspect 명령으로 RestartPolicy가 들어가 있는 걸 확인할 수 있어요 ➜ ~ docker container run -d -p 80:80 --restart=on-failure:3 nginx:1.14 a40c4e4243037f3099bbb5aa0df825840e56f8d40ba5572fc48e90668fe2631c ➜ ~ docker container inspect a40c | grep -A 4 -B 4 on-failur..
no image
도커 컨테이너 다루기 -1
도커의 주된 목적은 컨테이너를 실행하는 거예요. 오늘은 도커 컨테이너의 시작, 정지, 확인, 삭제 등과 같은 것을 하는 방법을 알아볼 거예요. 먼저 도커가 잘 실행되고 있는지 확인해볼게요. docker version ### result ➜ ~ docker version Client: Docker Engine - Community Version: 20.10.7 API version: 1.41 Go version: go1.13.15 Git commit: f0df350 Built: Wed Jun 2 11:58:10 2021 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Versio..