0%

Docker Note

Docker-Desktop在linux以及Windows的安装

Docker

Docker安装记录

Docker安装

在这里采用Docker仓库安装,一开始我使用curl自动安装脚本,后续我在Linux机器上想安装Docker Desktop,就发现一个问题。。!!!Docker无法卸载干净,所以在这里用仓库安装方法。

安装需求:

我只解决了两个问题,其他问题并未太在意,在后续安装没有遇到问题。

  • CPU虚拟化

    虚拟机在虚拟机设置界面起开,否则进入BIOS在安全界面开启CPU Vrtualization

  • KVM虚拟化支持(开启CPU自动开启)

安装步骤:

Linux

从Docker仓库下载Docker

移除老版本

1
$ sudo apt-get remove docker docker-engine docker.io containerd runc

设置Docker仓库

1
2
3
4
5
6
7
8
# 更新索引
$ sudo apt-get update
# 下载HTTPS工具
$ sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release

添加Docker官方GPG key

1
2
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

设置仓库

1
2
3
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新索引

1
$ sudo apt-get update

在这里我遇到了一个问题

image-20221201095344783

解决如下:修改resolv.conf中的DNS

1
$ sudo vim /etc/resolv.conf

添加两个域名服务器

1
2
nameserver 223.5.5.5
nameserver 223.6.6.6

再次更新索引 >>>> 成功

下载Docker

1
2
# 下载最新版
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

拉去测试镜像测试

1
$ sudo docker run hello-world

image-20221201100119301

我在安装Docker-Desktop后,就可以不使用sudo了。。。并且与sudo显示的目录不同

安装Docker-Desktop

我安装了图形化Ubuntu暂作服务器使用,所以安装了Docker Desktop

安装必要组件以及清理早期版本

1
2
3
4
5
6
$ sudo apt install gnome-terminal
# 清理Docker-Desktop
$ sudo apt remove docker-desktop
$ rm -r $HOME/.docker/desktop
$ sudo rm /usr/local/bin/com.docker.cli
$ sudo apt purge docker-desktop

下载 Docker-Desktop安装包

我在下载后通过XFTP传输至了服务器

1
2
3
4
5
# 更新索引
$ sudo apt-get update
# 安装本地deb包
$ sudo apt-get install ./docker-desktop-<version>-<arch>.deb
# 下方错误忽略即可

image-20221201100937488

接下来就可以在桌面使用Docker-Desktop客户端了

在这里我遇到了个情况。。。在Docker-Desktop启动后,不需要在cmd命令中使用sudo了。。。并且sudo情况下与不加的情况下,所看的镜像不同。

推荐教学及配套文档

Windows

安装Docker-Desktop

目前Winows下Docker-Desktop是通过wsl进行管理

开启Windows功能

image-20221201155607919

注:会与VM16中虚拟机CPU虚拟化冲突

安装WSL

再次下载官方下载安装即可

问题

镜像源

添加docker镜像源

 解决:添加registry-mirrors
打包报错

failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code [manifests 11]: 403 Forbidden

解决:buildkit : false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": false
},
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://docker.mirrors.ustc.edu.cn"
]
}
Windows安装位置

参考

Windows是通过wsl安装了docker虚拟机,可以通过更改wsl导入和导出,将docker移动到其他磁盘,节省C盘空间

关闭Docker-Desktop

右键小鲸鱼,quit

image-20221201164455712

导出至指定目录

1
wsl --export <Distribution Name> <FileName>

image-20221201164515462

注销虚拟机

1
wsl --unregister <DistributionName>

image-20221201164640632

导入指定目录的打包文件

image-20221201164655435

1
wsl --import-in-place <Distribution Name> <FileName>

重新启动Docker-Desktop

双击运行即可

补充:指定默认Linux发行版本

1
2
# 应该是不影响使用的。
wsl --set-default <Distribution Name>

image-20221201164802712

Portainer

Powerful container management

Docker图形化界面可以简化一些操作,但图形化界面更方便更直观哇咔咔

Docker Desktop只可以在主机上使用,但安装Portainer,可以将服务暴露出来,提供Web界面的管理界面

创建容器

1
$ docker volume create portainer_data

运行容器(。。当然是社区免费版)

1
$ docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

By default, Portainer generates and uses a self-signed SSL certificate to secure port 9443. Alternatively you can provide your own SSL certificate during installation or via the Portainer UI after installation is complete.

If you require HTTP port 9000 open for legacy reasons, add the following to your docker run command:

1
-p 9000:9000

嗯。。。我的当然还是HTTP

开启防火墙端口

1
$ sudo ufw allow 9000/tcp