dockerを調べてみながらrosを起動してみる
dockerを使うことがあったので、詳しく知るためにまとめてみることにした。
<環境> Ubuntu 22.04
インストールに関してはここにある通りに行いました。
参考にさせてもらった文献
とても詳しく書かれているため非常によい勉強になると思います。これ以上わかりやすいものはないので、用語等の説明は省きます。
docker Hubで使いたいイメージを探す
docker Hubに移動して実際に探してみます。
docker Hubは、docker用のgithubのようなものです。今回使いたいのは、Ubuntu18にRos-melodicが入ったイメージなので探してみます。ここにありました。これをpull、起動していきたいと思います。
dockerで起動
まずはイメージを持ってきたいと思います。
$ docker pull ros:melodic
一様確認してみましょう
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ros melodic 70b924cfe48d 2 months ago 1.28GB
rocker 導入
イメージは持ってこれましたが、GUIを使えるようにしたいと思います。rockerでこれを起動できるようにしたいと思います。インストールするには、以下の通り
$ sudo apt-get install python3-rocker
rocker 起動
それでは、一度起動してみようと思います。
$ rocker --nvidia --x11 --user --network host --privileged --nocleanup --name first ros:melodic
--nvidia : GPUを有効にする
--x11 : X11を有効にしてGUIを使えるようにする
--network host : ホストPCとネットワークを共有して他PCとROS2通信したり、Ethernetのデバイスを使ったりする
--privileged : USBデバイスなどを使えるように
--nocleanup : コンテナstop時にコンテナが削除されないようにする
--name first : コンテナに名前をつける
ros:melodic : 起動するdocker imageの"REPOSITORY:TAG"
rviz 起動
すると、起動できたと思います。それでは、実際rviz等が立ち上がるか見てみましょう。
$ rviz
bash: rviz: command not found
どうやら、rvizが入っていないようです。なので、rvizを入れたいと思います。
$ sudo apt update
$ sudo apt install ros-melodic-rviz
別でターミナルを起動して、roscoreを立ち上げて、rvizが立ち上がるか確認してみます。
$ rocker --nvidia --x11 --user --network host --privileged --nocleanup ros:melodic
$ roscore
$ rviz
すると、rvizが無事立ち上がったと思います。
最後に
コンテナの起動
exit
で抜けた後、先程のコンテナ(name: first)を起動したい場合は,以下のようにします。
$ docker start first
$ docker attach first
また、このコンテナで行った変更をdocker imageにしたい場合(今回はros-rvizという名前のイメージを作成します)
$ docker commit first ros-rviz:melodic
それでは、確認してみてください。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ros-rviz melodic 3662abc388b9 10 seconds ago 1.49GB
ros melodic 70b924cfe48d 2 months ago 1.28GB
このようになっていたら成功です。
いらなくなったdocker imageはdocker rmi
で削除できるので、以下のように消してください。
$ docker rmi 70b924cfe48d
Discussion