Difference between revisions of "Docker"

From Bike Wiki
Jump to navigation Jump to search
(Docker)
(Setting Up Docker Environment)
 
(15 intermediate revisions by 3 users not shown)
Line 7: Line 7:
 
===Docker on Linux===
 
===Docker on Linux===
 
*To install:
 
*To install:
**For Ubuntu:</br>
+
**For Ubuntu:
<code> sudo apt-get install docker </code>
+
***<code> sudo apt-get install docker </code>
**For Red Hat:</br>
+
**For Red Hat:
<code> sudo yum install docker </code>
+
***<code> sudo yum install docker </code>
 
**For Fedora:
 
**For Fedora:
<code> sudo dnf install docker -y </code>
+
***<code> sudo dnf install docker -y </code>
 
**For Arch:
 
**For Arch:
<code> sudo pacman -S docker </code>
+
***<code> sudo pacman -S docker </code>
  
*Starting the docker daemon:
+
*Starting the docker daemon (on most distros):
<code> sudo systemctl enable docker.service
+
**<code> sudo systemctl enable docker.service </code>
  
 
===Docker With Pain (Windows)===
 
===Docker With Pain (Windows)===
 
Use the “edge” version or else it won’t like the windows version
 
Use the “edge” version or else it won’t like the windows version
  
 +
===Docker on Mac===
 +
Pretty straightforward installation. There is a tutorial you can follow after installation.
 +
 +
===Setting Up Docker Environment===
 +
Once docker has been installed the first thing that you need to do is create a docker image.  Docker images act as isolated, replicable instances of a software stack that can be used on any computer that has docker installed.  In order to create a docker image you first need to create a Dockerfile.  A Dockerfile is a script that contains all the commands require to build an image from scratch.
 +
 +
*First, create and navigate to a folder to create the Dockerfile:
 +
**<code>mkdir docker</code>
 +
**<code>cd docker</code>
 +
 +
*Next, create a Dockerfile
 +
**<code>touch Dockerfile</code>
 +
 +
*Now, edit the Dockerfile how you see fit to create the enviornment that is best for whatever purpose you need to achieve.
 +
 +
*Once that is all done build the Dockerfile
 +
**<code>docker build</code>
 +
 +
*Congratulations, you have built your first docker image!
  
 
===Commands===
 
===Commands===
* To run a docker image in a container/volume:
+
*To run a docker image in a container/volume:
<code> docker run -it --rm --mount source=SOURCE,destination=/DESTINATION IMAGE</code>
+
**<code>docker run -it --rm --mount source=SOURCE,destination=/DESTINATION IMAGE</code>
 +
 
 +
**For example, to run an image <code>anything</code> in a container <code>autobike</code>:
 +
***<code>docker run -it --rm --mount source=autobike,destination=/autobike anything</code>
  
** For example, to run an image <code>anything</code> in a container <code>autobike</code>:
+
*To create a new container:
<code> docker run -it --rm --mount source=autobike,destination=/autobike anything </code>
+
**<code>docker create [OPTIONS] IMAGE [COMMAND] [ARG...]</code>
  
* To create a new container:
+
*To name a docker image:  
<code> docker create [OPTIONS] IMAGE [COMMAND] [ARG...] </code>
+
**<code>docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]</code>
  
* To name a docker image:  
+
*To see your docker images:
<code> docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]</code>
+
**<code>docker image list</code>
  
* To see your docker images:
+
*To see docker volumes:
<code> docker image list </code>
+
**<code>docker volume list</code>
  
* To see docker volumes:
+
*To delete a docker image list:
<code> docker volume list </code>
+
**<code>docker image rm [OPTIONS] IMAGE [IMAGE...]</code>
  
 
When using a container, remember to store the code inside the folder of the container so that changes will be saved.
 
When using a container, remember to store the code inside the folder of the container so that changes will be saved.
  
 
===Vision’s Current Used Dockerfile (as of 12/12/20)===
 
===Vision’s Current Used Dockerfile (as of 12/12/20)===
<code>
+
<syntaxhighlight lang="OCaml">
 
FROM ros:noetic
 
FROM ros:noetic
  
Line 55: Line 77:
 
rm -rf /var/lib/apt/lists/*
 
rm -rf /var/lib/apt/lists/*
 
CMD ["/bin/bash"]
 
CMD ["/bin/bash"]
</code>
+
</syntaxhighlight>

Latest revision as of 16:51, 22 December 2020

Docker

Docker is an open-source project for automating the deployment of applications as portable, self-sufficient containers that can run on the cloud or on-premises.

Why we use it

We use docker as a way to have a portable, replicable environment to conduct development on the vision system without having physical access to the bike or any of its corresponding SoCs.

Docker on Linux

  • To install:
    • For Ubuntu:
      • sudo apt-get install docker
    • For Red Hat:
      • sudo yum install docker
    • For Fedora:
      • sudo dnf install docker -y
    • For Arch:
      • sudo pacman -S docker
  • Starting the docker daemon (on most distros):
    • sudo systemctl enable docker.service

Docker With Pain (Windows)

Use the “edge” version or else it won’t like the windows version

Docker on Mac

Pretty straightforward installation. There is a tutorial you can follow after installation.

Setting Up Docker Environment

Once docker has been installed the first thing that you need to do is create a docker image. Docker images act as isolated, replicable instances of a software stack that can be used on any computer that has docker installed. In order to create a docker image you first need to create a Dockerfile. A Dockerfile is a script that contains all the commands require to build an image from scratch.

  • First, create and navigate to a folder to create the Dockerfile:
    • mkdir docker
    • cd docker
  • Next, create a Dockerfile
    • touch Dockerfile
  • Now, edit the Dockerfile how you see fit to create the enviornment that is best for whatever purpose you need to achieve.
  • Once that is all done build the Dockerfile
    • docker build
  • Congratulations, you have built your first docker image!

Commands

  • To run a docker image in a container/volume:
    • docker run -it --rm --mount source=SOURCE,destination=/DESTINATION IMAGE
    • For example, to run an image anything in a container autobike:
      • docker run -it --rm --mount source=autobike,destination=/autobike anything
  • To create a new container:
    • docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
  • To name a docker image:
    • docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
  • To see your docker images:
    • docker image list
  • To see docker volumes:
    • docker volume list
  • To delete a docker image list:
    • docker image rm [OPTIONS] IMAGE [IMAGE...]

When using a container, remember to store the code inside the folder of the container so that changes will be saved.

Vision’s Current Used Dockerfile (as of 12/12/20)

FROM ros:noetic

# install ros package
RUN apt-get update && apt-get install -y \
	vim\
	ros-noetic-ros-tutorials\
	git &&\
	rm -rf /var/lib/apt/lists/*
CMD ["/bin/bash"]