Welcome to Muto RS Robot repository
2)Common commands
2.Common commands
2.Common commands2.1.Do not use sudo command2.2. Help command2.3.Image command2.4. Container command2.5. Other commonly used commands2.6. Command summary
2.1.Do not use sudo command
Normally, to operate docker commands, you need to prefix sudo, as follows:
sudo docker version
But after adding the docker user group, you don't need to add the sudo prefix. How to add the docker user group (run the command in the host running docker):
xxxxxxxxxxsudo groupadd docker # Add docker user groupsudo gpasswd -a $USER docker # Add the current user to the docker user group, where $USER can automatically resolve to the currently logged in usernewgrp docker # Update docker user group
After adding the above command, use the [docker images] command to test. If no error is reported, it means that the sudo command is no longer needed. If the following error is reported:
xxxxxxxxxxpi@ubuntu:~$ docker imagesWARNING: Error loading config file: /home/pi/.docker/config.json: open /home/pi/.docker/config.json: permission denied
Then execute the following command on the host machine to solve the problem:
xxxxxxxxxxsudo chown "$USER":"$USER" /home/"$USER"/.docker -Rsudo chmod g+rwx "/home/$USER/.docker" -R
2.2. Help command
xxxxxxxxxxdocker info #Display Docker system information, including the number of images and containers.docker --help #Help
2.3.Image command
- docker pull download image
xxxxxxxxxx# Download imagejetson@ubuntu:~$ docker pull ubuntuUsing default tag: latest # If no tag is specified, the default is latest.latest: Pulling from library/ubuntucd741b12a7ea: Pull complete #Layered downloadDigest: sha256:67211c14fa74f070d27cc59d69a7fa9aeff8e28ea118ef3babc295a0428a6d21Status: Downloaded newer image for ubuntu:latestdocker.io/library/ubuntu:latest #Real location
- docker images list images
x# List images on localhostpi@raspberrypi:~ $ docker imagesi Info → U In UseIMAGE ID DISK USAGE CONTENT SIZE EXTRA192.168.2.51:5000/muto-humble:3.3.0 23a4c47d106f 7.92GB 0B192.168.2.51:5000/muto-humble:latest 82136c6d9c27 8.34GB 0B U192.168.2.51:5000/muto-kilted:1.1 2753e1b11ddd 7.4GB 0B192.168.2.51:5000/ros2-kilted-release:1.0 e6252585561e 5.7GB 0Balpine/curl:latest af0461b4a8c6 14.3MB 0Bbusybox:latest eade5be814e8 4.17MB 0B Ukilted:1.0 80471fea8516 7.22GB 0Bkilted:1.1 2753e1b11ddd 7.4GB 0Blanggenius/dify-api:1.11.1 c5c633a63f56 2.39GB 0B Ulanggenius/dify-plugin-daemon:0.5.1-local 3cd80a202e1b 1.43GB 0B Ulanggenius/dify-sandbox:0.2.12 5c2ad4db0b19 636MB 0B Ulanggenius/dify-web:1.11.1 baad4c046f12 392MB 0B Umuto-humble:3.2.0 7a8ded22e9e9 7.92GB 0B# explanationREPOSITORY Image's warehouse sourceTAG image tagsIMAGE ID image IDCREATED image creation timeSIZE Image Size#The same warehouse source can have multiple TAGs, representing different versions of the warehouse source. We use REPOSITORY: TAG to define different images. If you do not define the tag version of the image, docker will use the lastest image by default!#Optional-a: List all local images-q: Show only image id--digests: Display image summary information
- docker search search image
xxxxxxxxxx# Search for imagesjetson@ubuntu:~$ docker search ros2NAME DESCRIPTION STARS OFFICIAL AUTOMATEDosrf/ros2 **Experimental** Docker Images for ROS2 deve… 60 [OK]tiryoh/ros2-desktop-vnc A Docker image to provide HTML5 VNC interfac… 11althack/ros2 An assortment of development containers for … 7tiryoh/ros2 unofficial ROS2 image 6athackst/ros2 [Deprecated-> use althack/ros2] 5uobflightlabstarling/starling-mavros2 ROS2 version of MAVROS 2theosakamg7/ros2_java_docker Image base 1 [OK]# docker search The name of a certain image corresponds to the image in the DockerHub warehouse# Optional--filter=stars=50 : List the images whose collection number is not less than the specified value.
- docker rmi delete image
xxxxxxxxxx# delete imagedocker rmi -f image id # delete singledocker rmi -f Image name:tag Image name:tag # Delete multipledocker rmi -f $(docker images -qa) # Delete all
2.4. Container command
A container can only be created if you have an image. We use the ubuntu image here to test. Download the image:
xxxxxxxxxxdocker pull ubuntu
- docker run runs the image to start the container
xxxxxxxxxx# commanddocker run [OPTIONS] IMAGE [COMMAND][ARG...]# Description of common parameters--name="Name" # Assign a name to the container-d # Run the container in the background and return the container's id!-i # Run the container in interactive mode by using it with -t-t # Reassign a terminal to the container, usually used with -i-P # Random port mapping (uppercase)-p # Specify port mapping (summary), generally there are four ways to write itip:hostPort:containerPortip::containerPorthostPort:containerPort (commonly used)containerPort#testjetson@ubuntu:~$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEyahboomtechnology/ros-humble 3.4.0 49581aa78b6b 2 hours ago 24.3GByahboomtechnology/ros-humble 3.3.9 cefb5ac2ca02 3 days ago 20.5GByahboomtechnology/ros-humble 3.3.8 49996806c64a 4 days ago 20.5GByahboomtechnology/ros-humble 3.3.7 8989b8860d17 4 days ago 17.1GByahboomtechnology/ros-humble 3.3.6 326531363d6e 5 days ago 16.1GBubuntu latest bab8ce5c00ca 6 weeks ago 69.2MBhello-world latest 46331d942d63 13 months ago 9.14kB#Use ubuntu to start the container in interactive mode and execute the /bin/bash command in the container!jetson@ubuntu:~$ docker run -it ubuntu:latest /bin/bashroot@c54bf9efae47:/# lsbin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr varroot@c54bf9efae47:/# exit # Use exit to exit the container and return to the hostexitjetson@ubuntu:~$
- docker ps lists all running containers
xxxxxxxxxx#commanddocker ps [OPTIONS]#Description of common parameters-a #List all currently running containers + historically run containers-l # Show recently created containers-n=? # Display the last n created containers-q # Silent mode, only the container number is displayed.#testjetson@ubuntu:~$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc54bf9efae47 ubuntu:latest "/bin/bash" 2 hours ago Up 4 seconds funny_hugle3b9c01839579 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago jovial_brown
- Exit the container
xxxxxxxxxxexit # Container stops exitingctrl+P+Q # Container does not stop exiting
- Enter the running container from multiple terminals
xxxxxxxxxx# command 1docker exec -it container id bashShell# testjetson@ubuntu:~$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc54bf9efae47 ubuntu:latest "/bin/bash" 2 hours ago Up 4 seconds funny_hugle3b9c01839579 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago jovial_brownjetson@ubuntu:~$ docker exec -it c5 /bin/bash # The ID of the container can be abbreviated, as long as it can uniquely identify the container.root@c54bf9efae47:/## command 2docker attach container id# testjetson@ubuntu:~$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc54bf9efae47 ubuntu:latest "/bin/bash" 2 hours ago Up 35 seconds funny_hugle3b9c01839579 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago jovial_brownjetson@ubuntu:~$ docker attach c5 # The ID of the container can be abbreviated, as long as it can uniquely identify the container.root@c54bf9efae47:/##Distinction# exec opens a new terminal in the container and can start a new process# attach directly enters the terminal of the container startup command and will not start a new process
- Start and stop the container
xxxxxxxxxxdocker start (container id or Container name) # Start containerdocker restart (container id or Container name) # Restart containerdocker stop (container id or Container name) # Stop containerdocker kill (container id or Container name) # Force stop container
- Delete containers
xxxxxxxxxxdocker rm container id # delete specified containerdocker rm -f $(docker ps -a -q) # Delete all containersdocker ps -a -q|xargs docker rm # Delete all containers
2.5. Other commonly used commands
- View the process information running in the container and support ps command parameters.
xxxxxxxxxx# commanddocker top container id# testjetson@ubuntu:~$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc54bf9efae47 ubuntu:latest "/bin/bash" 2 hours ago Up 2 minutes funny_hugle3b9c01839579 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago jovial_brownjetson@ubuntu:~$ docker top c5UID PID PPID C STIME TTY TIME CMDroot 9667 9647 0 14:20 pts/0 00:00:00 /bin/bash
- View the metadata of the container/image
xxxxxxxxxx# commanddocker inspect container id#Test to view container metadatajetson@ubuntu:~$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc54bf9efae47 ubuntu:latest "/bin/bash" 2 hours ago Up 4 minutes funny_hugle3b9c01839579 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago jovial_brownjetson@ubuntu:~$ docker inspect c54bf9efae47[{# The complete id, the container id above is the first few digits of the intercepted id."Id": "c54bf9efae471071391202a8718b346d9af76cb1ff17741e206280603d6f0056","Created": "2023-04-24T04:19:46.232822024Z","Path": "/bin/bash","Args": [],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 9667,"ExitCode": 0,"Error": "","StartedAt": "2023-04-24T06:20:58.508213216Z","FinishedAt": "2023-04-24T06:19:45.096483592Z"},# Test to view image metadatajetson@ubuntu:~$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEubuntu latest bab8ce5c00ca 6 weeks ago 69.2MBhello-world latest 46331d942d63 13 months ago 9.14kBjetson@ubuntu:~$ docker inspect bab8ce5c00ca[{"Id": "sha256:bab8ce5c00ca3ef91e0d3eb4c6e6d6ec7cffa9574c447fd8d54a8d96e7c1c80e","RepoTags": ["ubuntu:latest"],"RepoDigests": ["ubuntu@sha256:67211c14fa74f070d27cc59d69a7fa9aeff8e28ea118ef3babc295a0428a6d21"],"Parent": "","Comment": "","Created": "2023-03-08T04:32:41.063980445Z","Container": "094fd0c521be8c84d81524e4a5e814e88a2839899c56f654484d32d171c7195b","ContainerConfig": {"Hostname": "094fd0c521be",............."Labels": {"org.opencontainers.image.ref.name": "ubuntu","org.opencontainers.image.version": "22.04"}},"DockerVersion": "20.10.12","Author": "","Config": {"Hostname": "",........."Labels": {"org.opencontainers.image.ref.name": "ubuntu","org.opencontainers.image.version": "22.04"}},"Architecture": "arm64","Variant": "v8","Os": "linux","Size": 69212233,"VirtualSize": 69212233,"GraphDriver": {"Data": {"MergedDir": "/var/lib/docker/overlay2/8418b919a02d38a64ab86060969b37b435977e9bbdeb6b0840d4eb698280e796/merged","UpperDir": "/var/lib/docker/overlay2/8418b919a02d38a64ab86060969b37b435977e9bbdeb6b0840d4eb698280e796/diff","WorkDir": "/var/lib/docker/overlay2/8418b919a02d38a64ab86060969b37b435977e9bbdeb6b0840d4eb698280e796/work"},"Name": "overlay2"},"RootFS": {"Type": "layers","Layers": ["sha256:874b048c963ab55b06939c39d59303fb975d323822a4ea48a02ac8dc635ea371"]},"Metadata": {"LastTagTime": "0001-01-01T00:00:00Z"}}]
2.6. Command summary