오늘은 수업시간에 ubuntu로 docker를 사용해보는 시간을 가졌다.
Virtual Box로 하면된다고 해서 따라했는데 계속 에러가 떠서, 교수님께 여쭤보니 MacBook M1은 지원을 안한다고,,,😂😂
다른 학우분께서 본인이 쓰는 방법을 알려주셨는데 그것도 안되서 포기해야하나 싶었다. 그 때, 또 다른 학우분이 링크를 하나 공유해주셔서 정말 감사하게도 나도 연결할 수 있었다.
MacBook Air M1에 Linux(Ubuntu)설치하기 ( + Parallels )
Parallels에서 14일인가 7일인가 무료 트라이얼을 제공해줘서 오늘 분량은 다행히 따라 잡을 수 있게 되었다.
touch Dockerfile
vim Dockerfile
다 끝나면 :wq! 해서 나오기
나는 node.js 파일을 docker로 연결시켜야했기 때문에, 아래 링크를 참고했다.
https://nodejs.org/ko/docs/guides/nodejs-docker-webapp/
1)
docker build -t myapache .
docker 이미지를 빌드하는 부분인데, 계속 Got permission denied while trying to connect to the Docker daemon socket at unix://var/run/docekr.socket:Post~
이렇게 떴었다.
검색을 하다 2가지 방법을 찾았다.
🥕 1번
sudo usermod -a -G docker $USER
// 피피티에 위의 문장을 쓰면 된다고 해서 했는데, 계속 거절되었다.
sudo service docker restart
docker build -t myapache .
-> docker 그룹에 사용자를 추가하는 것. docker는 root 계정 외에는 실행 권한이 없기 때문에, 사용자를 추가해줌으로써 매번 권한 얻는 과정을 줄일 수 있다. (출처 : https://developer-kus.tistory.com/41)
🥕 2번 (작동함)
sudo chmod 666 /var/run/docker.socket
docker build -t myapache .
-> /var/run/docker.socket의 파일 권한을 666으로 변경하여 그룹 내의 다른 사용자도 접근 가능하게 변경하는 것 (출처 : https://github.com/occidere/TIL/issues/116)
2)
node:internal/modules/cjs/loader:936
package.json에 main이 잘못 작성되어 있었음. 파일명이랑 같게 바꿔주니까 에러 사라짐.
3)
문제 해결 방법을 찾았는데 안 고쳐진다?
systemctl stop docker.service
다시 틀었는데도 안된다?
재부팅이 답
4)
request to https //registry.npmjs.org/express failed reason getaddrinfo eai_again registry.npmjs.org
-> npm config rm proxy
npm config rm https-proxy --tried removing npm proxy
짧게나마 경험해 본 바로는 문제 생김 -> 구글 서치 -> 방법대로 해봤는데 안됨 -> 재부팅이 답
5) 분명히 잘 빌드되었다고 나왔는데 docker ps를 해보면 안나오는 경우 ->
CMD 부분이 틀렸을 가능성 有
나 같은 경우는 CMD ['node', 'start'] 로 되어 있었는데, 계속 exit로 빠졌다.
이걸 CMD ['npm','내 파일 이름']으로 수정하니까 docker ps시 보였다.