1 minute read

개념

  • Docker Image : class와 같은 개념
  • Docker Container : object와 같은 개념

기본적인 명령어

sudo docker image pull ubuntu:20.04
docker create -i -t --name [컨테이너 이름] [이미지 이름]:[이미지 버전]
docker start [컨테이너 이름]
docker attach [컨테이너 이름]

image에서 나가기

root@e769e49ab78c:/# exit

3. 컨테이너 to img

docker commit -a "sewon" -m "first commit" buntu2 wony:7.1
docker run -i -t buntu

4. 이미지 리스트 보기

docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
wony         7.1       34a0707be1a1   25 seconds ago   65.7MB
ubuntu       20.04     7be0a240314b   4 days ago       65.7MB
``

## 5. 가지고 있는 컨테너 확인하기

켜져 있는 container 확인

```bash
docker ps

꺼져 있는 container까지 확인

docker ps -a
```를 실행한다.

## 6. 삭제

켜져 있으면 끄고 삭제 해야 한다.

## Docker가 설치되어 있는지, 실행 중인지 확인하는 명령어

```bash
sudo systemctl status docker

궁금한 점

Image에서 git clone을 하면 local에서 vscode로 코드를 편집할 수 있을까? -> vscode로 docker image에 접속하여 코드를 편집할 수도 있고 git clone, push 등을 할 수도 있다.

docker-compose.yml

  • docker-compose.yml 파일은 여러 docker container를 정의하고 관리하며 설정 및 실행할 수 있도록 한다.

F1tenth Docker 사용법

전제

  1. local에 f1tenth_gym_ros repository가 clone되어 있다.
  2. local에 f1tenth_gym_ros의 docker image인 sim-1와 novnc-1 있다.

방법

0 Docker Desktop에서 f1tenth_gym_ros를 켠다.

1 f1tenth_gym_ros의 docker-compose.yml 파일이 있는 경로에서 터미널에 다음 명령어를 통해 sim-1와 novnc-1을 실행한다.

docker-compose up

위 명령어는 docker-compose.yml 파일에 있는 것들을 자동으로 실행한다.

2 다른 terminal에서 다음 명령어를 통해 sim-1 docker image에 접속한다.

docker exec -it f1tenth_gym_ros-sim-1 /bin/bash

3 sim-1 image의 sim_ws 경로에서 다음 명령어들을 통해 Launch file을 실행한다.

source /opt/ros/foxy/setup.bash
source install/local_setup.bash
ros2 launch f1tenth_gym_ros gym_bridge_launch.py

4 http://localhost:8080/vnc.html에서 rviz 환경을 확인하다.

5 Vscode로 sim-1 image에 접속하여 코드를 편집한다.

6 colcon build를 하여 수정 사항을 반영한다.

source /opt/ros/foxy/setup.bash
cd ~/sim_ws
source install/local_setup.bash
colcon build

7 node를 실행한다.

. /opt/ros/foxy/setup.bash
cd ~/sim_ws
. install/setup.bash

ros2 run <package_name> <node_name>

Categories:

Updated: