docker使用笔记

修改记录:
24_0125_01 创建
25/01/25 整理
相关电子书籍链接

1.Docker 与容器

2.核心概念与安装配置

2.1 核心概念

2.2 docker 安装

ubuntu

使用官方的脚本自动安装

 curl -fsSL https://test.docker.com -o test-docker.sh
 sudo sh test-docker.sh

可能会失效

准备条件

#安装前先卸载操作系统默认安装的docker,
sudo apt-get remove docker docker-engine docker.io containerd runc

#安装必要支持
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

准备安装

#添加 Docker 官方 GPG key (可能国内现在访问会存在问题)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 阿里源(推荐使用阿里的gpg KEY)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

#添加 apt 源:
#Docker官方源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


#阿里apt源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


#更新源
sudo apt update
sudo apt-get update

安装Docker

#安装最新版本的Docker
sudo apt install docker-ce docker-ce-cli containerd.io
#等待安装完成

#查看Docker版本
sudo docker version

#查看Docker运行状态
sudo systemctl status docker

安装Docker 命令补全工具

sudo apt-get install bash-completion

sudo curl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker -o /etc/bash_completion.d/docker.sh

source /etc/bash_completion.d/docker.sh

允许非Root用户执行docker 命令

这时只有root权限才能使用,因此我们添加docker的用户组,把当前用户加入组中

sudo groupadd docker
sudo usermod -aG docker  $USER
newgrp docker       
最后一步 更新.bashrc文件

我们需要编辑 ~/.bashrc文件,并在文件末尾增加如下一行,如果不在.bashrc文件中增加下面这一行命令

#如果没有此行命令,你会发现,当你每次打开新的终端
#你都必须先执行一次 “newgrp docker” 命令
#否则当前用户还是不可以执行docker命令
groupadd -f docker

修改docker 默认的存储路径

官方文档的修改办法是编辑 /etc/docker/daemon.json 文件:

vi /etc/docker/daemon.json

默认情况下这个配置文件是没有的,这里实际也就是新建一个,然后写入以下内容:

{  
  "data-root": "/mhxw/docker",
}

每项都用“,”分割

此文件还涉及默认源的设定,如果设定了国内源,那么实际就是在源地址下方加一行,写成:

{  
  "registry-mirrors": ["http://hub-mirror.c.163.com"],  
  "data-root": "/mhxw/docker"  
}

保存退出,然后重启 docker 服务:

systemctl restart docker

2.3 配置Docker 服务

Docker Hello World

此时,验证

docker container run hello-world

运行交互式的容器

我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现**“对话”**的能力:

runoob@runoob:~$ docker run -i -t ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#

各个参数解析:

  • -t: 在新容器内指定一个伪终端或终端。
  • -i: 允许你对容器内的标准输入 (STDIN) 进行交互。

我们尝试在容器中运行命令 cat /proc/versionls分别查看当前系统的版本信息和当前目录下的文件列表

我们需要确认容器有在运行,可以通过 docker ps 来查看:

runoob@runoob:~$ docker ps
CONTAINER ID        IMAGE                  COMMAND              
### 如何在Docker容器中访问和使用笔记本电脑内置摄像头 为了使Docker容器能够访问主机上的硬件设备,比如笔记本电脑的内置摄像头,通常需要确保几个方面配置正确。这不仅涉及到了解如何启动具有适当权限的容器,还涉及到宿主机上必要的驱动程序和支持。 #### 启动带有USB支持的Docker容器 为了让Docker容器可以访问外部设备如摄像头,在创建或运行容器时需指定`--privileged=true`选项来赋予更高的权限[^3]。然而更推荐的做法是指定具体的设备而不是给予整个特权模式: ```bash docker run -it --device=/dev/video0:/dev/video0 ubuntu bash ``` 这条命令中的`/dev/video0`代表的是Linux系统下第一个检测到的视频捕捉设备(即摄像头)。如果不确定具体路径可以在宿主机执行`v4l2-ctl --list-devices`查看所有可用视频设备及其对应的节点名称。 对于某些情况可能还需要安装额外软件包以便于操作这些多媒体资源,例如FFmpeg用于处理音视频流数据或是VLC player作为播放工具等。 #### 配置Docker守护进程以允许USB设备传递 有时即使指定了特定设备文件也未必能成功获取图像帧序列,这时就需要进一步调整Docker Daemon配置使其接受来自USB接口的数据传输请求。编辑位于/etc/docker/daemon.json内的JSON对象加入如下字段: ```json { "default-ulimits": { "nofile": {"Name":"nofile","Hard":65535,"Soft":65535} }, "features": {"apparmor":false}, "insecure-registries":["localhost:5000"] } ``` 请注意上述设置可能会降低安全性因此仅建议开发测试环境中应用;生产环境应谨慎评估风险后再做决定。 另外值得注意的一点是在Windows或者macOS平台上由于架构差异实现方式会有所不同,这里主要讨论基于Linux系统的方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值