1. 자주 쓰는 명령어
cd <Dockerfile 경로>
docker compose up --build
docker compose run --rm <이미지명>
exit #컨테이너 상 bash에서 입력 -> 도커 종료
ctrl + p + q #컨테이너 끄지 않고 나가기
docker ps -a #전체 컨테이너 확인
docker container ls #실행 중인 컨테이너 확인
docker rm -f <컨테이너ID> #특정 컨테이너 삭제 (CLI에서 오류가 나서, 끄기 힘들 때 유용)
docker compose down #docker compose에 정의된 모든 컨테이너 정지 및 삭제
docker compose up #정지된 컨테이너 모두 재실행
docker compose start <컨테이너> #특정 컨테이너 재실행
docker exec -it <컨테이너ID> bash #다른 shell에서 컨테이너 실행할 때
2. Dockerfile 작성하기
# FROM {베이스image}:{버전}
FROM ubuntu:22.04
# 터미널에서 실행시킬 명령어
RUN apt-get updates &&
apt-get instll -y \
<패키지1> \
<패키지2>
RUN echo "source /home/user/ros2_ws/install/setup.bash" >> ~/.bashrc
# 명령어를 주지 않는 경우 (RUN 사용x)
CMD ['python', 'hi.py']
# 경로변경
WORKDIR /home/
# 환경변수
ENV GAZEBO_MODEL_PATH=/home/temp
RUN unset GAZEBO_MODEL_PATH #해제
# 복사하기 COPY <host 경로> <local 경로>
COPY /home/host/ /home/local/
# 만약, 도커 컨테이너 내에서 수정한 스크립트가 host의 원본에도 반영되도록 하고 싶다면,
# docker-compose.yml 에서 volumes를 이용하자!
3. docker-compose.yml 작성하기
version: "3.9" # optional since v1.27.0
services:
service_name:
build: . #빌드 디렉토리
ports: #외부와 통신할 포트
- "5000:5000" #외부:내부
volumes: #host와 공유할 폴더 설정 -> (주의) 컨테이너에서 수정하면, host도 변경된다!
- README.md:/home/user/Documents/README.md
networks: #컨테이너가 속한 네트워크
- service-network
4. VScode에 docker 기능 설치
- VScode의 extension에서 아래 세개 설치
- Remote development
- Docker
- Docker engine
참고자료
- [Dockerfile 작성] https://wooono.tistory.com/123
- [docker-compose.yml 작성] https://byungwoo.oopy.io/2758a690-6ec7-42d0-ae41-5ebc75f4e57a
- [VScode + docker] https://89douner.tistory.com/123
'Skills' 카테고리의 다른 글
GUI 제작 Tool: PySide & PyQt (1) | 2024.12.14 |
---|---|
로봇 모델링: URDF, SDF (0) | 2024.12.08 |
Github 사용법 (5분 내로 핵심만) (0) | 2024.12.04 |