728x90

Colima를 통한 도커 환경과 

도터 데스크탑 환경 이렇게 두가지 환경을 구축해놓음

mysql 계정 설정했던 환경은 도커 데스크탑 환경이었어서 colima를 통해 띄운 도커 컨테이너로는 접속이 안되었으나 

이를 모르고 잠시 헤맨 이야기

 

 

발단

..시작은 mysql 실행을 위한 설치 재설치 실행 실행실패를 하다보니 도커를 통해서 mysql을 설치했다.

전개

도커를 통해 mysql 접속도 성공함! 이미지 선택해서 컨테이너 실행해서 비밀번호도 만들고 들어가서 데이터베이스도 만들었다! 

위기

근데 도커데스크탑 중지하고 연결을 끊고나서 도커 cli를 통해 들어가려는데 계속 막히는 것.

어떻게 막혔냐.

먼저 도커 cli 접속안됨

❯ docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

그래서 colima를 켜서 접속함

절정

근데! 

docker exec -it my-mysql-container mysql -uroot -p

접속이 안됨

 

실행되는 컨테이너 ID를 확인해보니 docker desktop의 설정파일에서 본 컨테이너 ID와 다름

 

결말

colima를 껐을때랑 켰을 때랑 다른 도커가 켜지네

colima 끔

도커데스크탑만 켜둔 상태 (참고로 cli로 하면 desktop켜고 싶어도 colima끈상태로는 접속안됨)

❯ docker exec -it mysql-container bash
bash-4.4# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 15
Server version: 8.0.33 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.

mysql>

접속 성공! 

도꺼데스크탑 껐음

데이터베이스 서버 죽어서 연결끊김

 

결론

나는 Colima를 통한 도커 환경과 

도터 데스크탑 환경 이렇게 두가지 환경을 구축해놨었다.

mysql 계정 설정했던 환경은 도커 데스크탑 환경이었어서 colima를 통해 띄운 도커 컨테이너로는 접속이 안되었던 것이다. 

 

Colima 는? 도커 컨테이너를 맥이랑 리눅스에서 실행하기 위한 오픈소스다.

https://github.com/abiosoft/colima

 

나는 왜 colima를 설치했었나..

맞다 오라클 공부해보려고 설치하는데 도커 데스크탑으로는 안된다고 해서 colima를 통해 깔았음

이후로 도커를 안써서 까먹고 있었네 딱콩!

 

나의 환경

 

 

도커 자체가 엔진이라서 다른 환경에서 쓸 수 있었다

도커 데스크탑을 통해서 도커 엔진을 윈도우, 맥환경, 리눅스에서 쓸 수 있다고 한다. 

이렇게 도커 데스크탑을 쓰다가 이슈가 터져서 사람들이 대안으로 많이쓰는게 지금

podman, colima..등등 있다고 함

https://konfuzio.com/en/docker-desktop-alternative/

 

 

 

 

읽은 글들

 

[Docker] 맥북M1에 도커 컨테이너 colima설치

 

[Docker] 맥북M1에 도커 컨테이너 colima설치

ㅁ 들어가며 Docker Desktop의 이용약관을 보면 대기업에서는 이제 무료로 사용할 수 없게 되었습니다. 그리고 Intel 칩에서만 가동되었던 오라클 컨테이너의 경우 M1에는 돌아가지 않는 문제점도 있

peterica.tistory.com

도커데스크 업데이트 내용

Docker is Updating and Extending Our Product Subscriptions | Docker

 

Docker is Updating and Extending Our Product Subscriptions | Docker

Learn from Docker experts to simplify and advance your app development and management with Docker. Stay up to date on Docker events and new version

www.docker.com

 

Difference between Docker Desktop and Docker Engine

 

Difference between Docker Desktop and Docker Engine

Technically the engine can run without the cli-client being installed. Furthermore, the cli-client can be installed on a system without the engine and use it with a remote engine. The cli-client is nothing than a user interface that interacts with the api

forums.docker.com

 

Why does Colima failed to find Docker daemon

 

Why does Colima failed to find Docker daemon

I was using Docker Desktop on my Mac for a long time. Currently Docker desktop causing a huge issues related to starting up. Everytime it needs some tweak to run or uninstall and install it again, ...

stackoverflow.com

 

What is difference between Docker and Docker Desktop?

 

What is difference between Docker and Docker Desktop?

I am using a mac and apparently installing Docker Desktop is mandatory to use Docker in macOS. Why Docker Desktop is required in Mac and Windows OS, and not in Linux? What purpose Docker Desktop se...

stackoverflow.com

 

 

homebrew에서 docker를 설치하면 기본으로 도커 데스크탑으로 설치됨 

How to use Docker without Docker Desktop on MacOS 📦

 

How to use Docker without Docker Desktop on MacOS 📦

Preamble I think a lot of large software teams have struggled with Docker's licensing...

dev.to

 

도커(Docker) 입문편: 컨테이너 기초부터 서버 배포까지

 

도커(Docker) 입문편: 컨테이너 기초부터 서버 배포까지

도커(Docker)는 2013년 등장한 컨테이너 기반 가상화 도구입니다. 도커를 사용하면 컨테이너를 쉽게 관리할 수 있으며, 이미지를 만들어 외부 서버에 배포하는 것도 가능합니다. 이 글은 도커를 시

www.44bits.io

 

 

 

728x90
728x90

https://shanepark.tistory.com/400

 

[MacOS] M1 맥북 도커로 ORACLE DB 실행하기

Intro M1 맥북을 처음 구입 한 이후로 약 1년 반동안, 오라클 데이터베이스를 띄우기 위해 참 많은 노력을 했었습니다. 원래부터 Oracle이 MacOS를 정식 지원을 하지는 않았지만, 그나마 이전의 맥북에

shanepark.tistory.com

이 블로그를 보고 따라했다 정말 감사하다. 

 

나는 저번에 도커로 오라클 설치 시도를 했다가 실패했는데 

기존에 포트번호를 쓰고 있는 곳이 있는지 이런 에러가 떠서 추가적인 작업이 필요했다. 

 

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

이 밑에 1521이 이미 쓰이고 있다는 이야기도 같이 찍혔다. 

 

그래서 

 sudo lsof -i :1521

로 1521 쓰고 있는 PID 번호 확인하고 (PID 는 Process ID 의 줄임말로 운영체제에서 프로세스를 식별하기 위해 부여하는 번호를 의미)

 

kill -9 50797

없앴다.

그리고 실행되어있던 colima 를 멈추고 

colima stop

 

이미 설치해 놨던 걸 찾아서 

 

 실행되고 끝난 docker container를 포함하여 출력하는 명령문

docker ps -a

 

 

다시 실행했다. 

docker start [컨테이너 이름]

 

 

728x90
728x90

Docker는 개발자가 격리된 컨테이너 내에서 애플리케이션을 생성, 배포 및 실행할 수 있도록 하는 인기 있는 오픈 소스 컨테이너화 플랫폼입니다. 컨테이너는 모든 종속성 및 구성 파일과 함께 애플리케이션을 다양한 컴퓨팅 환경에서 일관되게 실행할 수 있는 단일 단위로 캡슐화하는 경량의 독립 실행형 휴대용 패키지입니다.

Docker는 애플리케이션과 해당 종속성을 컨테이너 이미지로 패키징하는 방법을 제공합니다. 그런 다음 기본 운영 체제나 하드웨어 아키텍처에 관계없이 Docker가 설치된 모든 머신에서 배포 및 실행할 수 있습니다. 이렇게 하면 호환성 문제의 가능성이 줄어들고 필요한 인프라를 설정하는 데 필요한 시간과 노력이 최소화되므로 애플리케이션을 더 쉽게 개발, 테스트 및 배포할 수 있습니다.

Docker는 소프트웨어 개발 업계, 특히 클라우드 컴퓨팅 및 DevOps 환경에서 널리 사용되며 마이크로서비스, 서버리스 아키텍처 및 기타 최신 클라우드 네이티브 애플리케이션을 구축하고 배포하는 데 필수적인 도구가 되었습니다.

 

 

Docker 컨테이너 vs Docker 이미지 

 

Docker 컨테이너는 Docker 이미지의 런타임 인스턴스입니다. 즉, 컨테이너는 이미지에서 생성되고 코드, 런타임, 시스템 도구, 라이브러리 및 설정을 포함하여 특정 애플리케이션을 실행하는 데 필요한 모든 것을 포함하는 가볍고 격리된 환경입니다.

컨테이너는 Docker가 호스트 시스템에 설치되어 있는 한 변경 없이 여러 환경에서 실행될 수 있는 이식 가능하고 일관된 단위로 애플리케이션과 해당 종속성을 패키징하는 방법을 제공합니다. 각 컨테이너는 자체 파일 시스템, 네트워킹 및 리소스와 함께 자체 격리된 공간에서 실행되며 동일한 호스트의 다른 컨테이너와 독립적으로 시작, 중지 및 제거될 수 있습니다.

 

반면 Docker 이미지는 컨테이너를 만드는 데 필요한 모든 지침과 종속성을 포함하는 정적 읽기 전용 청사진 또는 템플릿입니다. 이미지는 기본 이미지 또는 기타 기존 이미지에서 이미지를 빌드하는 데 필요한 단계와 명령을 정의하는 텍스트 파일인 Dockerfile을 실행하여 생성됩니다.

요약하면 Docker 컨테이너와 Docker 이미지의 주요 차이점은 컨테이너는 이미지의 런타임 인스턴스인 반면 이미지는 컨테이너를 만드는 데 사용되는 정적 사전 구성된 패키지라는 것입니다. 이미지는 컨테이너를 빌드하는 데 사용되고 컨테이너는 애플리케이션을 실행하는 데 사용됩니다.

 

Docker 이미지가 진짜 그 이미지인가?

 

아니요, Docker 이미지는 그림이나 사진이라는 의미에서 실제 이미지가 아닙니다. 대신 Docker 이미지는 특정 애플리케이션 또는 서비스를 실행하는 데 필요한 모든 필수 파일, 라이브러리 및 종속성을 포함하는 사전 구성된 휴대용 패키지입니다.

Docker에서 "이미지"라는 용어를 사용하는 이유는 개체 또는 장면의 사진을 찍는 것과 유사하게 애플리케이션의 특정 상태 또는 구성에 대한 스냅샷 또는 표현을 생성한다는 아이디어를 반영하기 때문입니다. Docker 이미지는 코드, 런타임 및 구성 설정을 포함하여 애플리케이션의 현재 상태를 캡처하고 모든 Docker 지원 환경에서 공유, 배포 및 실행할 수 있는 자체 포함 단위로 패키징합니다.

 

 

 

 

728x90
728x90

새로 맥북 사서 이것 저것 설치하다가 

도커를 써보기로 했다. 회사에서 도커와 디비를 연결해서 써서 같은 환경으로 해보면 공부되고 좋을 것 같아서. 

 

근데 도커 왜쓰지? 

저번에 개인프로젝트할때는 없이도 했는데.. 라는 생각이 들었다.

 

https://www.44bits.io/ko/post/why-should-i-use-docker-container#%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A3%BC%EB%8F%84-%EA%B0%9C%EB%B0%9C%EC%9D%98-%EA%B4%80%EC%A0%90%EC%97%90%EC%84%9C-%EB%8F%84%EC%BB%A4%ED%8C%8C%EC%9D%BC-%EB%B0%94%EB%9D%BC%EB%B3%B4%EA%B8%B0

 

왜 굳이 도커(컨테이너)를 써야 하나요? - 컨테이너를 사용해야 하는 이유

컨테이너는 서버 애플리케이션을 배포하고 서버를 운영하는 표준적인 기술이 되어가고 있습니다. 하지만 처음 사용해본다면 그 장점이 잘 와닿지 않을 수도 있습니다. 왜 굳이 도커 컨테이너를

www.44bits.io

 

 

그래서 이 글을 읽었다!@ 귯귯귯

아직 완전히 이해 안되긴 하지만..

 

도커는 서버를 관리해준다!

우리는 여러 서버를 쓸 때 발생하는 문제, 서버기록들.. 등을 도커로 관리할 수 있다. 

서버지식이 없어도 도커를 통해 쉽게 작업할 수 있다. 

 

 

"

도커파일 = 서버 운영 기록

도커 이미지 = 도커 파일 + 실행시점 

도커 컨테이너 = 도커 이미지  + 환경변수

"

 

 

 

728x90

+ Recent posts