1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229
|
/**
\page tutorial-install-docker Tutorial: Installation from Docker images
\tableofcontents
\section install_docker_intro 1. Introduction
Even with the detailed and tested \ref tutorial_install_src tutorials, sometimes it is tough for people to get a system
up and running with ViSP. That's why in this tutorial we explain how to get ready to use Docker images that contains
ViSP source code with already build tests, examples and tutorials that you may just run to discover ViSP capabilities.
Our Docker images available on [Docker Hub](https://hub.docker.com/repository/docker/vispci/vispci) are around 1 GB in
size (compressed size) and contain minimal things to discover and start to play with ViSP.
\section install_docker_engine 2. Prerequisites: Install Docker Engine
\subsection install_docker_engine_ubuntu 2.1. On Ubuntu host
As mentioned [here](https://docs.docker.com/engine/install/ubuntu/), to install Docker Engine on Ubuntu host using the
repository, follow the instructions:
- Update the apt package index and install packages to allow apt to use a repository over HTTPS:
\verbatim
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
\endverbatim
- Add Docker’s official GPG key:
\verbatim
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
\endverbatim
- Use the following command to set up the stable repository
\verbatim
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
\endverbatim
- Update the apt package index, and install the latest version of Docker Engine and containerd
\verbatim
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
\endverbatim
\subsection install_docker_engine_mac 2.2. On MacOS host
- To install Docker Engine on MacOS host, first go to the
[Docker Store](https://hub.docker.com/editions/community/docker-ce-desktop-mac) and download Docker Desktop for Mac.
- Double-click Docker.dmg to open the installer, then drag Moby the whale to the Applications folder.
- Double-click Docker.app in the Applications folder to start Docker.
- You are prompted to authorize Docker.app with your system password after you launch it. Privileged access is needed
to install networking components and links to the Docker apps.
- In order to run GUIs from the container, you will need to:
- Install [XQuartz](https://www.xquartz.org/) 2.7.11 or later
- After installing XQuartz, start it and open XQuartz -> Preferences from the menu bar. Go to the last tab, Security,
and enable both "Allow connections from network clients" and "Authenticate connections" checkboxes and restart XQuartz.
\image html img-xquartz-security.jpg
- Now your Mac will be listening on port 6000 for X11 connections. Record the IP Address of your Mac as you will need
it in your containers.
- Restart X11 server or reboot your Mac to take into account previous changes
\section docker_visp_pull 3. Pull existing docker image
In [Docker Hub](https://hub.docker.com/repository/docker/vispci/vispci), we provide several ready-to-use Docker
images that can be used on an Ubuntu or macOS host with ViSP already built. Instead, there is also the possibility to
build docker images from a `Dockerfile` following instruction given in \ref docker_visp_build section.
\subsection docker_visp_pull_ubuntu_22_04 3.1. Pull Ubuntu 22.04 image
\verbatim
$ docker pull vispci/vispci:ubuntu-22.04
\endverbatim
\subsection docker_visp_pull_ubuntu_20_04 3.2. Pull Ubuntu 20.04 image
\verbatim
$ docker pull vispci/vispci:ubuntu-20.04
\endverbatim
\subsection docker_visp_pull_ubuntu_18_04 3.3. Pull Ubuntu 18.04 image
\verbatim
$ docker pull vispci/vispci:ubuntu-18.04
\endverbatim
\section docker_visp_build 4. Build docker image from Dockerfile
We suppose here that you cloned ViSP from github in your workspace.
Change directory to access the `Dockerfile` and build the corresponding docker image
\subsection docker_visp_build_ubuntu_24_04 4.1. Build Ubuntu 24.04 image
\verbatim
$ cd $VISP_WS/visp/docker/ubuntu-24.04
$ docker build -t vispci/vispci:ubuntu-24.04 .
\endverbatim
\subsection docker_visp_build_ubuntu_22_04 4.2. Build Ubuntu 22.04 image
\verbatim
$ cd $VISP_WS/visp/docker/ubuntu-22.04
$ docker build -t vispci/vispci:ubuntu-22.04 .
\endverbatim
\subsection docker_visp_build_ubuntu_20_04 4.3. Build Ubuntu 20.04 image
\verbatim
$ cd $VISP_WS/visp/docker/ubuntu-20.04
$ docker build -t vispci/vispci:ubuntu-20.04 .
\endverbatim
\subsection docker_visp_build_ubuntu_18_04 4.4. Build Ubuntu 18.04 image
\verbatim
$ cd $VISP_WS/visp/docker/ubuntu-18.04
$ docker build -t vispci/vispci:ubuntu-18.04 .
\endverbatim
\section docker_visp_start 5. Start ViSP container
\subsection docker_visp_start_ubuntu 5.1. On Ubuntu host
- On your computer running Ubuntu, allow access to the X11 server
$ xhost +local:docker
non-network local connections being added to access control list
- Run your Docker container. The following command connects to the ubuntu-22.04 Docker container.
It can be easily adapted to any other container name.
$ docker run --rm -it --network=host --privileged \
--env=DISPLAY \
--env=QT_X11_NO_MITSHM=1 \
--volume=/tmp/.X11-unix:/tmp/.X11-unix:rw \
--volume=/dev:/dev \
vispci/vispci:ubuntu-22.04
vispci@6c8d67579659:~$ pwd
/home/vispci
\subsection docker_visp_start_macos 5.2. On MacOS host
- Get your MacOS computer IP address
$ IP=$(/usr/sbin/ipconfig getifaddr en0)
$ echo $IP
$ 192.168.1.18
- Allow connections from MacOS to XQuartz
$ xhost + "$IP"
192.168.1.18 being added to access control list
- Run your Docker container. The following command connects to the ubuntu-22.04 Docker container.
It can be easily adapted to any other container name.
$ docker run --rm -it --network=host --privileged \
--env=DISPLAY="${IP}:0" \
--env=QT_X11_NO_MITSHM=1 \
--volume=/tmp/.X11-unix:/tmp/.X11-unix:rw \
--volume=/dev:/dev \
vispci/vispci:ubuntu-22.04
vispci@6c8d67579659:~$ pwd
/home/vispci
\section docker_visp_usage 6. How to use ViSP container
- We suppose here that you successfully \ref docker_visp_start using one of the previous command:
$ docker run ... -it vispci/vispci:ubuntu-<version>
- Within the container, ViSP workspace is installed in `$HOME/visp-ws` folder:
vispci@6c8d67579659:~$ ls $HOME/visp-ws
visp visp-build visp-images
- In `visp` folder you will find a [Github](https://github.com/lagadic/visp) clone of the source code. To update its
content with the last changes, run:
cd $HOME/visp-ws/visp; git pull
- In `visp-build` folder you will find ViSP libraries and all the build binaries corresponding to the tests, examples
and tutorials. If you updated `visp` folder content, don't forget to refresh your build with:
cd $HOME/visp-ws/visp-build; cmake ../visp; make -j$(nproc)
- In `visp-images` folder you will find the dataset used by the tests and examples.
- You are now ready to run binaries that open GUI
vispci@6c8d67579659:~$ cd $HOME/visp-ws/visp-build/tutorial/image
vispci@6c8d67579659:~$ ./tutorial-viewer monkey.jpeg
A click to quit...
\image html img-monkey.jpg
- If you are on an Ubuntu host, you are now ready to run binaries that require access to your camera.
vispci@6c8d67579659:~$ cd $HOME/visp-ws/visp-build/tutorial/grabber
vispci@6c8d67579659:~$ ./tutorial-grabber-v4l2
Use device : 0
Recording : disabled
Warning: cannot set input channel to 2
Image size : 640 480
or with this other tutorial
vispci@6c8d67579659:~$ ./tutorial-grabber-opencv
Use device : 0
Recording : disabled
\section install_docker_next 7. Next tutorial
You are now ready to see the next \ref tutorial-getting-started that will show you how to use ViSP as a 3rd party to
build your own project.
*/
|