install

!!! tip docker install windows question
* 在重启后可能会出现登录成功后重新回到登录界面的问题
* 可能是启动项的问题,有两个系统?
!!!

!!! tip docker 挂载路径
* 如果要使用本地路径挂载到docker最好在docker root目录下在创建一个目录,这样如果有多个docker挂载同一个目录下,root用户的环境变量不会冲突。使它们保持独立
!!!

apt安装docker

cmd 解释 docker install
sudo apt update 更新系统包
sudo apt install apt-transport-https ca-certificates curl software-properties-common 安装必要的依赖
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 添加Docker的官方GPG密钥
sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” 设置Docker的稳定版仓库
sudo apt update 再次更新包列表
sudo apt install docker-ce 安装Docker
sync;reboot 重启
sudo docker run hello-world 验证Docker安装
sudo usermod -aG docker $USER 将当前用户添加到docker组重启后生效

==windows 7==

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo docker run -d \
--name win7 \
--device=/dev/kvm \
--cap-add=NET_ADMIN \
-p 8006:8006 \
-p 3390:3389/tcp \
-p 3390:3389/udp \
-v <HOST_PATH>:<CONTAINER_PATH> \
-e RAM_SIZE=4G \
-e CPU_CORES=8 \
-e DISK_SIZE=100G \
-e MANUAL=Y \
--stop-timeout 2 \
--restart=on-failure \
dockurr/windows
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo docker run -d \
--name win7 \
--device=/dev/kvm \
--cap-add=NET_ADMIN \
-p 8006:8006 \
-p 3390:3389/tcp \
-p 3390:3389/udp \
-v <LOCAL_PATH>:/data \
-v <HOST_PATH>:<CONTAINER_PATH> \
-e RAM_SIZE=4G \
-e CPU_CORES=8 \
-e DISK_SIZE=100G \
-e MANUAL=Y \
--stop-timeout 2 \
--restart=on-failure \
dockurr/windows

==win11==

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo docker run -d \
--name win11 \
--device=/dev/kvm \
--cap-add=NET_ADMIN \
-p 8006:8006 \
-p 3390:3389/tcp \
-p 3390:3389/udp \
-v <LOCAL_PATH>:/data \
-v <HOST_PATH>:<CONTAINER_PATH> \
-e RAM_SIZE=4G \
-e CPU_CORES=8 \
-e DISK_SIZE=100G \
-e MANUAL=Y \
--stop-timeout 2 \
--restart=on-failure \
dockurr/windows

==macos==

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo docker run -d \
--name macos \
--device=/dev/kvm \
--cap-add=NET_ADMIN \
-p 8009:8009 \
-p 5900:5900/tcp \
-p 5900:5900/udp \
-e RAM_SIZE=1G \
-e CPU_CORES=4 \
-e DISK_SIZE=100G \
--stop-timeout 2 \
--restart=on-failure \
dockurr/macos
1
2
3
4
5
6
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:latest

run

shell
1
2
3
4
5
6
7
8
9
10
11
# --privileged
# 当你使用 --privileged 启动容器时,容器将获得更高的权限,可以访问主机上的所有设备。这对于某些需要直接与硬件交互的应用程序或服务是必要的。
# 在一些情况下,访问特定设备(如串口、USB 设备等)可能会因为权限不足而失败,这时使用 --privileged 可以解决问题。

sudo docker run -it --privileged \
-e LANG=C.UTF-8 \
-v /dev:/dev \
-v <HOST_PATH>:<CONTAINER_PATH> \
--name esp-build \
esp-idf.1.0 \
/bin/bash
shell
1
2
3
4
5
6
docker run -it  \
-e LANG=C.UTF-8 \
-v <HOST_PATH>:<CONTAINER_PATH> \
--name dot-build \
esp-idf \
/bin/bash
shell
1
2
3
4
5
6
docker run -it  \
-e LANG=C.UTF-8 \
-v <HOST_PATH>:<CONTAINER_PATH> \
--name ja310-build \
ubt1804_ja310 \
/bin/bash
shell
1
2
3
4
5
6
docker run -it  \
-e LANG=C.UTF-8 \
-v <HOST_PATH>:<CONTAINER_PATH> \
--name ja310-tmp \
ubt1804_ja310 \
/bin/bash
1
2
3
4
5
6
7
sudo docker run -it --privileged \
-e LANG=C.UTF-8 \
-v /dev:/dev \
-v <HOST_PATH>:<CONTAINER_PATH> \
--name docker-t32 \
esp-idf.1.0 \
/bin/bash
1
2
3
4
5
6
7
sudo docker run -it --privileged \
-e LANG=C.UTF-8 \
-v /dev:/dev \
-v <HOST_PATH>:<CONTAINER_PATH> \
--name esp-matter \
esp-matter \
/bin/bash