一、docker的介绍
本文章内容节选、删改、添加自Docker教程|菜鸟教程
二、docker基本命令
一、镜像
①寻找想要的镜像
可以在Docker hub直接寻找
也可以直接使用命令search寻找
docker search 镜像相关词
docker search ubuntu22.04
②拉取镜像
从docker hub拉取镜像
docker pull 镜像名
③列出本地存在的镜像
查看本地已经存在的镜像
docker images
④删除镜像
当需要删除镜像时,可以使用
docker rmi 镜像名
二、容器
①运行容器
基本运行
docker run 镜像名 命令
docker run ubuntu:15.10 /bin/echo "Hello world"
交互运行
相当于打开终端,允许io输入输出
-i: 允许你对容器内的标准输入 (STDIN) 进行交互。
–interactive Keep STDIN open even if not attached
-t: 在新容器内指定一个伪终端或终端。
–tty Allocate a pseudo-TTY
相关资料:Linux tty
/bin/bash为命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
相关资料:bash
docker run -it ubuntu:15.10 /bin/bash
在容器的终端中使用“查看系统版本”
cat /proc/version
后台运行
创建以进程方式运行的容器
-d 在后台分离运行容器并打印容器 ID
–detach Run container in background and print container ID
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
为容器取名并运行
结合了-i -t -d并取名的后台运行方法
docker run -itd --name 容器名称 所用镜像名
将外设添加到docker容器
添加–privileged=true
docker run -itd --privileged=true --name biaoding luxonis/depthai-ros:noetic-kalibr-imu-main
②进入、退出容器的终端
进入容器的终端
法1
docker attach 1e560fca3906
法2(推荐)
docker exec -it 243c32535da7 /bin/bash
退出容器的终端
若使用docker attach进入容器的终端,则在容器终端内的exit会导致容器的停止
若使用docker exec进入容器的终端,在该情况下的容器终端内使用exit不会导致容器停止
exit
③查看正在运行的容器及状态
查看正在运行的容器
若添加-a 则会包含所有容器(包括曾经退出的容器)
docker ps
查看容器内的标准输出
docker logs 容器id
docker logs 2b1b7a428627
④停止/重启容器
停止容器
docker stop 容器id
重启容器
docker restart 容器id
⑤删除、清理容器
删除容器
-f, --force Force the removal of a running container (uses SIGKILL)
docker rm -f 容器名
docker rm -f 1e560fca3906
清理所有已终止的容器
(似乎并不能清理很多空间出来)
docker container prune
三、其他
①查看docker中某指令用法
docker 指令 --help
docker run --help
②permission denied的解决
docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。
法1:sudo法
使用sudo获取管理员权限,运行docker命令
法2:用户组法
docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用
③相关资料链接
Docker Hub: 官方Hub
Docker 官方主页: 官方主页
Docker 国内镜像:阿里云加速
Docker第三方教程:菜鸟教程