DevOps. 31

[Docker] MariaDB 도커 이미지 생성하기

위 Dockerfile이 정상적으로 동작하려면 우선 /usr/local/var/mysql 디렉토리에서 db파일을 ./mysql 디렉토리에 백업해놓아야한다. 위와 같이, 이전에 생성했던 데이터베이스 'mydb'가 해당 디렉토리에 포함되어 있는 것을 확인해 볼 수 있다. 그러면 다음과 같이, 해당 mysql 디렉토리를 현재 docker-files 디렉토리에 copy 해보자. 정상적으로 copy가 된 것을 확인해볼 수 있다. 이제 Dockerfile을 작성해보자. 빌드가 정상적으로 완료되었다. 만약, 빌드가 정상적으로 동작하지 않고 상태가 Exited가 되었다면 다음과 같이 ENTRYPOINT에 "--user=root"를 작성해주고 다시 빌드하면 된다. $ docker run -d -p 3306:3306 --..

DevOps./Docker 2022.01.29

[Docker] ApiGateway Service 도커 이미지 생성하기

각각의 정보가 127.0.0.1 또는 localhost로 되어 있는데 컨테이너 내부에서 이렇게 사용하게 되면 컨테이너 자체가 되버리기 때문에, 외부에 있는 서비스를 뜻하는게 아니다. 그래서 다른 컨테이너 서비스의 ip adress를 사용해야하는데, 해당 ip adress는 동적으로 바뀔 수 있기 때문에 컨테이너 명을 명시하도록 한다. docker build -t gyeom/apigateway-service:1.0 . docker push gyeom/apigateway-service docker run -d -p 8000:8000 --network ecommerce-network \ -e "spring.cloud.config.uri=http://config-service:8888" \ -e "spring...

DevOps./Docker 2022.01.29

[Docker] docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:4369: bind: address already in use.

docker run 을 실행하던 중, 이미 4369 포트를 사용 중이라는 에러가 발생했다. lsof -i TCP:4369 // 해당포트의 사용중인 프로세스 리스트 조회 kill -9 21856 // 해당 프로세스 Kill 해당포트에서 사용중인 프로세스를 kill 한 뒤, 다시 프로세스 리스트를 조회한 결과 실행중인 프로세스는 없는 것을 확인했다. 그리고, 아까 에러를 발생하면서 Created 상태를 갖고 있는 Container를 삭제 해주었다. 다시 docker run 명령어 실행, 정상적으로 동작한 결과를 볼 수 있다.

DevOps./Docker 2022.01.28

[Docker] Docker를 활용한 MSA 애플리케이션 배포 구성

다양한 방법이 있지만, Docker + Local 구성으로 배포하려고 한다. 차후에 Kubernetes를 학습한 뒤, Docker + Kubernetess + AWS EC2 구성으로 배포해보자. 각 서비스는 개별적인 IP Address를 할당 받아 서로 통신 한다. IP 할당을 순차적으로 받기 때문에 다른 환경에서는 다른 IP로 할당 받을 수 있음. -> 다른 서비스들이 변경된 IP에 대해서 재설정해야함. -> 하지만, 같은 네트워크를 사용한다면 container name 으로 특정 서비스에 접속을 하게 되면 IP가 변경되더라도 사용가능. (container id의 경우에는 IP가 변경 될 때 다시 만들어지므로 X) Create Bridge Network 다양한 서비스들이 하나의 가상네트워크를 만들어 통..

DevOps./Docker 2022.01.28

[Docker] Microservice 도커 이미지 생성하기

$ docker build -t [유저아이디]/[도커이미지이름] . $ docker push [유저아이디]/[도커이미지이름] $ docker pull [유저아이디]/[도커이미지이름] docker run -d --network ecommerce-network \ --name user-service \ -e "spring.cloud.config.uri=http://config-service:8888" \ -e "spring.rabbitmq.host=rabbitmq" \ -e "spring.zipkin.base-url=http://zipkin:9411" \ -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" \ -e "..

DevOps./Docker 2022.01.28

[Docker] Docker 컨테이너

Docker 실행 컨테이너 실행 $ docker run [OPTIONS] IMAGE[:TAG|@DIGEST][COMMAND][ARG...]​ $ docker run ubuntu:16.04​ docker run unbuntu & 종료 된 컨테이너 확인 종료된 컨테이너 삭제 컨테이너 생성과 실행 $ docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7 -p 3306:3306 -> 앞에 있는 포트는 호스트접근 포트, 뒤에 있는 포트는 컨테이너 응답 포트 $ docker exec -it mysql bash exec -> 실행중인 컨테이너에 추가적인 작업을 하고자 할 때 사용 -it -> interactive tty..

DevOps./Docker 2022.01.28