yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
Raspberry Pi 4B📖
1.Preparation before use
  • 1.1 Download image
  • 1.2 Write image into SD card
  • 1.3 Start up Raspberry Pi
  • 1.4 Linux common commands
  • 1.5 Precautions
2.Basic course
  • 2.1 Log into Raspberry Pi system
  • 2.2 Change password and root account
  • 2.3 Remote transfer file
  • 2.4 Backup image file
  • 2.5 Fixing Raspberry Pi IP
  • 2.6 Set screen keep on
  • 2.7 Get Pi temperature
  • 2.8 Connect WIFI
  • 2.9 Modify Pi time
  • 2.10 Set the boot self-starting program
3.Expand course
  • 3.1 Serial port communicates with external devices
  • 3.2 2.Serial port login Pi
  • 3.3 Configured as a router
  • 3.4 Install Jupyter Lab
  • 3.5 Install Jupyter Widgets
  • 3.6 More Detail for Widgets
  • 3.7 Install OpenCV
  • 3.8 Install Tensorflow
4.Programming course
C language
  • 1.Development environment
  • 2.Print Hello World
  • 3.Pin output level
  • 4.Read pin level
  • 5.PWM output
Python language
  • 1.Development environment
  • 2.Print basic usage
  • 3.Pin output level
  • 4.Read pin level
  • 5.PWM output
5.AI vision course
A.Getting started with OpenCV
  • 6.Picture Rotation
  • 1.Introduction of OpenCV
  • 2.OpenCV image read and display
  • 3.OpenCV image write
  • 4.OpenCV image quality
  • 5.OpenCV pixel operation
B.OpenCV Geometric transformat
  • 1.Picture Zoom
  • 2.Picture Cut
  • 3.Picture Shift
  • 4.Picture Mirroring
  • 5.Affine Map
  • 7.Perspective Transformation
C.OpenCV picture processing
  • 1.Grayscale processing
  • 2.Image Binarization
  • 3.Edge detection
  • 4.Drawing line segment
  • 5.Drawing rectangle circle
  • 6.Drawing text picture
D.OpenCV image beautification
  • 1.Histogram of color pictures
  • 2.Histogram equalization
  • 3.Image restoration
  • 4.Brightness enhancement
  • 5.Skin whitening
  • 6.Gaussian mean filtering
  • 7.Median filtering
F.AI Advanced Course (Ubuntu system)
  • 1. QR code
  • 2. Human posture estimation
  • 3. Target detection
  • 4. Mediapipe development
  • 5. yolov4-tiny
E.Install TensorFlow
  • Install TensorFlow
6.ROS1 coursenew
Basic Course
  • 1.ROS introduction
  • 2.Project file structure
  • 3.Common commands and tools
  • 4.Publisher
  • 5.Subscribers
  • 6.Customize topic messages and use
  • 7.Client
  • 8.Server
  • 9.Custom service messages and usage
  • 10.TF release and monitoring
Visual Image Processing
  • 1. AR vision
  • 2. AR QR code
  • 3. ROS+Opencv foundation
  • 4. ROS+Opencv application
  • 5. MediaPipe development
7.ROS2 coursenew
Docker Course
  • 1.Overview and installation
  • 2.Common commands
  • 3.Understand and publish images
  • 4.Hardware interaction data processing
  • 5.Enter docker container
  • 6.Update docker images
Basic Course
  • 1.Introduction to ROS2
  • 2.Commands and tools
  • 3.ROS2 Topic communications
  • 4.ROS2 service communications
  • 5.ROS2launch file starts
OpenCV Course
  • 1.OpenCV Basic Course
  • 2.ROS+opencv application
  • 3.QR code recognition
  • 4.AR Vision
  • 5.Mediapipe
8.Accessories installation
  • 1. Installation of heat sink
  • 2. Wiring of cooling fan
  • 3. Double fan armor case Installation
  • 4. Argon NEO aluminum case installation
  • 5. Argon ONE aluminum alloy case installation
  • 6. Metal shell with built-in fan installation
  • 7. Acrylic case with cooling fan installation
  • 8. White-red ABS protective case installation
Download
  • Tools
  • C_code
  • Python code
  • ROS System
Download ZIP

Welcome to Raspberry Pi 4B repository

2.Common commands

2.Common commands

 

2.Common commands2.1、do not use the sudo command2.2、help commands2.3、image command2.4、container commands2.5、common other commands2.6、Command Summary

2.1、do not use the sudo command

Usually, to operate docker commands, you need to add the 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 a docker user group (run commands in the host running docker):

​x
sudo groupadd docker          # Add docker user group

sudo gpasswd -a $USER docker  # Add the current user to the docker user group, where $USER can automatically resolve to the currently logged in user

newgrp docker                 # Update the docker user group

After adding the above command, use the [docker images] command to test, if there is no error, it means that you can already use the sudo command. If the following error is reported:

xxxxxxxxxx
pi@ubuntu:~$ docker images
WARNING: Error loading config file: /home/pi/.docker/config.json: open /home/pi/.docker/config.json: permission denied

Run the following command on the host to solve the problem:

xxxxxxxxxx
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "/home/$USER/.docker" -R

After updating the docker user group, a new terminal may still show an error of insufficient permissions, just restart the board can sovle it

2.2、help commands

xxxxxxxxxx
docker info    # Displays Docker system information, including the number of images and containers.
docker --help  # help

 

2.3、image command

 

1、docker images (lists the images)

xxxxxxxxxx
# interpretation
REPOSITORY:  The repository source of the mirror
TAG: The label of the image
IMAGE ID: ID The ID of the image
CREATED: Image creation time
SIZE: Image size

# The same repository source can have multiple tags, representing different versions of this repository source, we use REPOSITORY:TAG to define different images, if you do not define the tag version of the image, docker will use lastest images by default!

# Optional
-a: Lists all local images
-q: Only the image ID is displayed
--digests: Displays the summary information of the image

 

2、docker pull (download image)

xxxxxxxxxx
#Usage method
docker pull [image warehouse address/image name:tag]
example: docker pull yahboomtechnology/ros-foxy:1.0.0
xxxxxxxxxx
# Such as download ubuntu image
jetson@ubuntu:~$ docker pull ubuntu         
Using default tag: latest           # Do not write tag, default is latest
latest: Pulling from library/ubuntu
cd741b12a7ea: Pull complete         # Layered download
Digest: sha256:67211c14fa74f070d27cc59d69a7fa9aeff8e28ea118ef3babc295a0428a6d21
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest     # Real Location

You can see that an new ubuntu image in here than before

 

3、docker search

xxxxxxxxxx
# Search for images
jetson@ubuntu:~$ docker search ros2
NAME                 DESCRIPTION          STARS           OFFICIAL           AUTOMATED
osrf/ros2           **Experimental** Docker Images for ROS2 deve…   60              [OK]
tiryoh/ros2-desktop-vnc      A Docker image to provide HTML5 VNC interfac…   11
althack/ros2          An assortment of development containers for …   7
tiryoh/ros2                                   unofficial ROS2 image                 
uobflightlabstarling/starling-mavros2           ROS2 version of MAVROS                   
# docker search The name of an image corresponds to the image in the DockerHub repository
# Optional
--filter=stars=50 : Lists images with a collection of no less than the specified value.

 

4、docker rmi (delete the image)

xxxxxxxxxx
# Delete the image
docker rmi -f [image id]                          # deletes a single
docker rmi -f [image name:tag] [image name:tag]   # Delete multiple
docker rmi -f $(docker images -qa)                # deletes all

 

2.4、container commands

To create a container with an image, we use the image of ubuntu here to test and download the image:

xxxxxxxxxx
docker pull ubuntu   

1、docker run

xxxxxxxxxx
# command
docker run [OPTIONS] IMAGE [COMMAND][ARG...]
# Description of common parameters
--name="Name" # Specify a name for the container
-d # runs the container in background mode and returns the ID of the container!
-i # runs the container in interactive mode by using it with -t
-t # reassigns a terminal to the container, usually used with -i
-P # random port mapping (uppercase)
-p # specifies the port mapping (summary), which can generally be written in four ways
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort (commonly used)
containerPort

# test
jetson@ubuntu:~$ docker images
REPOSITORY                   TAG       IMAGE ID       CREATED         SIZE
ubuntu                       latest    bab8ce5c00ca   6 weeks ago     69.2MB

# Use ubuntu to start the container in interactive mode and execute the /bin/bash command inside the container!
jetson@ubuntu:~$ docker run -it ubuntu:latest /bin/bash
# Enter exit

Example:

 

2、docker ps

xxxxxxxxxx
# command
docker ps [OPTIONS]
# Description of common parameters
-a # lists all currently running containers + historically run containers
-l # displays the most recently created container
-n=? # Displays the last n created containers
-q # silent mode, only the container number is displayed.

Example:

 

3、Exit the container

xxxxxxxxxx
exit        # The container stops exiting
ctrl+P+Q    # container does not stop exiting

 

4、Multiple terminals enter a running container

xxxxxxxxxx
# Command 1
docker exec -it [container id] [bashShell]

# test
jetson@ubuntu:~$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED       STATUS       PORTS     NAMES
c54bf9efae47   ubuntu:latest   "/bin/bash"   2 hours ago   Up 4 seconds                       funny_hugle
3b9c01839579   hello-world     "/hello"      3 hours ago   Exited (0) 3 hours ago             jovial_brown

jetson@ubuntu:~$ docker exec -it c54b /bin/bash     # The ID of the container can be abbreviated, as long as it uniquely identifies the container
root@c54bf9efae47:/# 
xxxxxxxxxx
# command 2
docker attach [container id]

# test
jetson@ubuntu:~$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED       STATUS       PORTS     NAMES
c54bf9efae47   ubuntu:latest   "/bin/bash"   2 hours ago   Up 35 seconds                      funny_hugle
3b9c01839579   hello-world     "/hello"      3 hours ago   Exited (0) 3 hours ago             jovial_brown

jetson@ubuntu:~$ docker attach c54b           # The ID of the container can be abbreviated, as long as it uniquely identifies the container
root@c54bf9efae47:/#

Difference:

exec is to open a new terminal in the container and a new process can be started, this method is generally used to enter the container

attach goes directly to the terminal of the container startup command and does not start a new process

5、Start and stop the container

xxxxxxxxxx
docker start   [container ID or container name] # Start the container
docker restart [container ID or container name] # Restart the container
docker stop    [container ID or container name] # Stop the container
docker kill    [container ID or container name] # Forces the container to stop

6、Delete the container

xxxxxxxxxx
docker rm [container id]                 # Deletes the specified container
docker rm -f $(docker ps -a -q)          # Delete all containers
docker ps -a -q|xargs docker rm          # Delete all containers

 

2.5、common other commands

1、View the process information running in the container and support ps command parameters.

xxxxxxxxxx
# command
docker top [container id]

# test
jetson@ubuntu:~$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED       STATUS       PORTS     NAMES
c54bf9efae47   ubuntu:latest   "/bin/bash"   2 hours ago   Up 2 minutes                       funny_hugle
3b9c01839579   hello-world     "/hello"      3 hours ago   Exited (0) 3 hours ago             jovial_brown
jetson@ubuntu:~$ docker top c54b             
UID       PID      PPID      C       STIME      TTY       TIME        CMD
root      9667     9647      0       14:20      pts/0     00:00:00    /bin/bash

 

2、View the metadata of the container/image

xxxxxxxxxx
# Command
docker inspect [container id]

# Test viewing container metadata
jetson@ubuntu:~$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED       STATUS        PORTS     NAMES
c54bf9efae47   ubuntu:latest   "/bin/bash"   2 hours ago   Up 4 minutes                       funny_hugle
3b9c01839579   hello-world     "/hello"      3 hours ago   Exited (0) 3 hours ago             jovial_brown
jetson@ubuntu:~$ docker inspect c54bf9efae47
[
    {
        # The complete id, the container ID above here, is the first few digits of this ID that were intercepted
        "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 viewing image metadata
jetson@ubuntu:~$ docker images
REPOSITORY                   TAG       IMAGE ID       CREATED         SIZE
ubuntu                       latest    bab8ce5c00ca   6 weeks ago     69.2MB
hello-world                  latest    46331d942d63   13 months ago   9.14kB
jetson@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

image-20230424144541215

Overview and installation
Understand and publish images

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文