Search
Duplicate
🐳

MacBook에 Docker로 우분투 환경을 구축해보자! 🧑🏻‍💻

간단소개
그동안 M1, Air에서 못 돌렸던 valgrind? gdb? Docker라면 전부 가능하다!
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Docker
Scrap
태그
Docker
9 more properties

이 가이드의 목표는 아주 아주 간단합니다!

1. MacBook M1, Air에 도커를 설치하여
2. 우분투 환경을 구축
3. Valgrind, gdb 등 Linux와 우분투에서만 가능하던 것들을 할 수 있게 하는 것입니다.

4. 그리고 이 모든 것을 아주 쉽게요.

만약 도커의 원리 등 자세한 것이 궁금하시다면?

1. 설치

위 사이트로 이동하여 Mac 용 Docker Desktop을 설치합니다.
무엇을 설치하여야 하는지 모르신다면?

2. 실행

설치 후 실행하면 가이드가 진행될 것입니다. 적당히 따라하시다가 나오시면 됩니다.

설치 확인

Docker의 컨테이너 터미널이 아닌 Mac 터미널에 아래의 명령어를 치세요!
docker run hello-world
Shell
복사
위 메시지가 출력되면 잘 설치가 된 것입니다!
아래의 명령어를 다시 입력해 봅시다.
docker run -it --name hello ubuntu:focal /bin/bash
Shell
복사
예제의 컨테이너 이름은 hello로 하겠습니다.
만약 --name hello 부분을 생략하면 임의로 도커가 컨테이너 이름을 지정합니다.
현재 우분투 최신 버전에 문제가 있어 focal로 깔겠습니다!! (20220915 기준)
이때 철학자나 수학자 이름부터, 적절한 형용사 + 명사의 조합으로 컨테이너 이름을 지어줍니다.
약간의 시간이 소모된 후 컨테이너가 생성되고 우분투 컨테이너에 접속이 될 것입니다.

만약 무언가가 잘 안 됐거나, 컨테이너에서 나갔다면? (exit 명령어, 터미널 종료 등)

# 실행 (여기서 hello는 컨테이너 이름) docker start hello # tty 접속 (여기서 hello는 컨테이너 이름) docker attach hello
Shell
복사
위의 명령어로 다시 맥 터미널을 통해 컨테이너에 들어올 수 있습니다.
exit으로 컨테이너를 빠져나가면, 자동으로 종료가 됩니다! 따라서 start를 다시 해줘야 합니다.

3. 대망의 마지막, 커스텀

# 컨테이너(hello) -> 호스트(사용자) (경로와 디렉토리, 파일 이름은 자유롭게 설정하세요) $ docker cp hello:~/ ~/42cursus # 호스트(사용자) -> 컨테이너(hello) $ docker cp ~/42cursus hello:~/
Shell
복사
이렇게 홈 디렉토리(~)에 안착!
저는 vim을 깔아서 .vimrc.viminfo가 있는 모습입니다.
먼저 우분투에 vimgcc를 깔아야 하겠지요?
그전에 먼저 apt update를 합시다.
# 차례대로 치시면 됩니다. apt update apt-get install gcc apt-get install vim # 커스텀 영역 apt-get install valgrind apt-get install gdb apt-get install git # e.t.c. ...
Shell
복사
여기까지가 끝입니다!

마치며

이제 valgrindgdb 등을 이용한 디버거를 통해 멀티 프로세스메모리 누수데이터 레이스를 감지할 수 있습니다. 1(설치)의 과정을 생략한다면, 클러스터 맥에서도 도커를 사용하실 수 있습니다.
이제 Docker와 함께 자유롭게 항해하시면 됩니다.
유용한 명령어 몇 개를 두고가겠습니다.

실행 관련

hello는 컨테이너 이름입니다!
#정지된 컨테이너 실행 docker start hello #재부팅한것처럼 다시 실행 docker restart hello #시작한 컨테이너에 접속 -> 엔터 한 번 더 입력하면 bash shell 표시됨 docker attach hello #컨테이너 정지 docker stop hello
Shell
복사

목록 출력

#실행중인 컨테이너 출력 docker ps #정지된 컨테이너까지 모두 출력 docker ps -a #받은 이미지의 목록 출력 docker images
Shell
복사

삭제, 제거

#컨테이너 삭제 docker rm hello #이미지 삭제 docker rm hello-world
Shell
복사
부족한 글 읽어주셔서 감사합니다.
잘못된 점과 부족한 점은 댓글 혹은 DM 주시면 감사하겠습니다!