💡 로제타(Rosetta) - Docker 컨테이너 내에서 다른 아키텍처의 바이너리를 실행할 수 있도록 지원하는 도구입니다. - 예를 들어, x86 아키텍처에서 동작하는 Docker 환경에서 ARM 아키텍처의 바이너리를 실행해야 할 때 Rosetta를 사용할 수 있습니다. - Rosetta를 사용하면 다른 아키텍처의 바이너리를 컨테이너 환경에서 실행할 수 있으므로, 다양한 플랫폼 간의 이식성을 높일 수 있습니다. 이는 특정 아키텍처에 종속되지 않고 효율적인 배포와 관리를 할 수 있는 장점을 제공합니다.
# docker hub에서 nginx를 다운로드 받습니다.$ docker pull nginx
[ 더 알아보기 ] 💡 Nginx - 웹 서버 소프트웨어로, 고성능이며 확장성이 뛰어납니다. 주로 정적 파일의 서비스, 리버스 프록시, 로드 밸런싱, HTTP 캐싱 등 다양한 기능을 제공합니다. - Nginx는 경량화되어 리소스 사용량이 적고, 동시 접속자 처리에 효율적입니다. 이러한 특징으로 인해 많은 웹 사이트와 애플리케이션에서 널리 사용되고 있습니다.
💡 Docker 이미지로 다운로드하는 것은 어디서 받아지는 것인가? - Docker Hub 또는 다른 Docker 레지스트리에서 다운로드할 수 있습니다. 대부분의 공식 이미지는 Docker Hub에서 제공됩니다. - 또는 사용자 정의 이미지를 만들어 Docker Hub나 다른 레지스트리에 업로드할 수 있습니다. 💡 docker 이미지로 다운로드할 수 있는 목록은 무엇이 있는가? - Ubuntu, CentOS, Alpine, Nginx, MySQL, Redis, Node.js, Python, Java, Ruby, Go, PHP, MongoDB, Postgres, Elasticsearch, Grafana, Jenkins, WordPress, Django, Ruby on Rails, Laravel 등을 다운로드할 수 있습니다.
💡 아래의 명령어를 통해 컨테이너를 생성하고 실행합니다. - 해당 명령어는 ‘nginx’ 이미지를 기반으로 ‘my-nginx’라는 이름의 Docker 컨테이너를 생성하고 실행하는 명령어입니다.
1. d 옵션은 컨테이너를 백그라운드에서 실행하는 detached 모드로 실행합니다. 2. p 80:80 옵션은 호스트 머신의 80 포트를 컨테이너의 80 포트로 매핑하여 컨테이너 내에서 실행 중인 NGINX 웹 서버에 접근할 수 있도록 합니다. 3. -name my-nginx 옵션은 컨테이너에 "my-nginx"라는 이름을 할당합니다. 4. nginx 인자는 컨테이너를 생성할 때 사용할 Docker 이미지의 이름을 지정합니다.
# nginx 이미지를 기반으로 my-nginx 이름의 Docker 컨테이너를 생성하고 실행하는 명령어
$ docker run -d -p 80:80 --name my-nginx nginx
- Docker Desktop은 로컬 컴퓨터에서 도커를 실행하기 위한 도구입니다. - Docker Desktop을 종료하더라도, 이미지와 컨테이너는 로컬 환경에 남아 있을 수 있습니다. 따라서, Docker Desktop을 종료해도 이전에 실행한 Nginx 컨테이너는 여전히 실행 중이며, 해당 컨테이너에 접근할 수 있습니다. - 다만, Docker Desktop을 다시 시작하지 않고 새로운 컨테이너를 생성하려면 접근할 수 없습니다.
# docker image tag format$ docker tag <로컬 이미지 이름>:<태그> <레지스트리 주소>/<이미지 이름>:<태그>
# docker tag를 통해 nginx라는 이미지를 adjh54/m-nginx라는 새롭게 구성한 repository에 1.0이라는 태깅을 하여 수행하였습니다.$ docker tag nginx adjh54/my-nginx:1.0