리눅스와 달리 윈도우나 맥에서 도커를 돌릴경우 가상머신을 통해 도커가 돌아간다고 봤는데요

Dockerfile, docker-compose를 통해 php, nginx, mysql 세팅하는 예제를 우분투, 맥에서 각각 시도해봤습니다
참고한 링크
https://www.digitalocean.com/community/tutorials/how-to-install-and-set-up-laravel-with-docker-compose-on-ubuntu-22-04


의문이 생긴점은 우분투를 기준으로 만들어진 도커세팅이 맥에서동작이 된다는게 이해가 가지 않았습니다. Dockerfile에는 apt등 우분투용 명령어를 사용하니까요

예상대로 우분투에서는 현재 운영체제위에서 위 3가지로 컨테이너가 만들어지고 웹어플리케이션이 동작하는걸 확인했는데,
맥에서는 linuxkit이라는 운영체제에서 위 3가지로 컨테이너가 만들어지고 웹어플리케이션이 동작하고 있습니다.

질문
1. 운영환경을 우분투 22를 쓰고 맥에서 개발환경 또한 우분투22를 쓰고싶습니다. 정확히 말하면 운영환경과 개발환경의 os를 맞추고 싶습니다. 맥에서의 linuxkit을 우분투22로 바꿀수 있을까요?

2. 맥에서 운영환경과 동일한 os를 사용하는 일반적인 방법을 알고 싶습니다. 도커에서 우분투22 컨테이너를 추가하고 위 3가지 컨테이너를 추가하는것도 생각해봤는데, 그렇다면 운영환경인 우분투22에서는 구지 우분투22 컨테이너를 만들고 위 3가지 컨테이너를 만들게 된다는건데 이게 일반적인 방법인지 의문이 듭니다

3. 맥에서 만든 컨테이너중 nginx컨테이너, php컨테이너에 각각 docker exec it <containerid> sh를 통해 접속한 후 명령어들을 쳐봤는데 운영체제는 같은 linuxkit을 사용하고 있으나 php컨테이너에는 bash, apt등 명령어가 존재하는데 nginx 컨테이너에서는 존재하지 않고 있습니다. 같은 linuxkit을 사용하고 있다고 이해하고있는데 제가 뭔가 잘못 이해한걸까요?

제가 뭔가 크게 잘못 이해하고 있는걸까요? 많이 검색했는데 비슷한 내용이 전혀 나오질 않고 있어서요. 질문이 길어서 죄송합니다.