华为云部署踩坑

Docker 国内镜像源(截止到2024.11.1)

DockerHub 镜像仓库是否正常
hub.xdark.top正常
hub.littlediary.cn正常
dockerpull.org新增
hub.crdz.gq正常
docker.1panel.live正常
docker.unsee.tech新增
docker.m.daocloud.io正常
docker.kejilion.pro正常
registry.dockermirror.com正常
hub.rat.dev正常
dhub.kubesre.xyz正常
docker.nastool.de正常
docker.hpcloud.cloud失效
docker.hlyun.org失效
doublezonline.cloud失效
docker.chenby.cn失效
ginger20240704.asia失效
lynn520.xyz失效
hub.docker-ttc.xyz失效
noohub.ru失效
docker.nat.tf失效
dockerproxy.cn失效
freeno.xyz失效
docker.registry.cyou失效
hub.yuzuha.cc失效
docker-cf.registry.cyou失效
docker.mrxn.net失效
dockerproxy.github.io失效
docker.wget.at失效
atomhub.openatom.cn失效
ccr.ccs.tencentyun.com失效
dockerproxy.com失效
dislabaiot.xyz失效
dockerpull.com失效
hub.firefly.store失效

配置方式1:临时使用

直接使用,直接拿镜像域名拼接上官方镜像名,例如要拉去镜像istio/distroless,可以用下面写法(不要带 https://

1
docker pull docker.unsee.tech/istio/distroless

配置方式2:长久有效

修改文件 /etc/docker/daemon.json(如果不存在则需要创建创建,注意不要写入中文,要带https://),并重启服务。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 创建目录
sudo mkdir -p /etc/docker

# 写入配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
    	"https://docker.unsee.tech",
        "https://dockerpull.org",
        "docker.1panel.live",
        "https://dockerhub.icu"
    ]
}
EOF

# 重启docker服务
sudo systemctl daemon-reload && sudo systemctl restart docker

Ubuntu 安装 Docker

1. 更新系统包索引

首先更新系统包索引,以确保所有软件包是最新的:

1
sudo apt update

2. 安装所需的依赖包

安装一些让 apt 能够使用 HTTPS 访问 Docker 仓库的包:

1
sudo apt install apt-transport-https ca-certificates curl software-properties-common

3. 添加 Docker 的官方 GPG 密钥

使用以下命令添加 Docker 的 GPG 密钥:

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

4. 添加 Docker 仓库

添加 Docker 官方的 APT 软件仓库:

1
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

5. 更新包索引并安装 Docker

现在可以更新包索引并安装 Docker:

1
2
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

6. 启动 Docker 并设置开机自启

安装完成后,可以启动 Docker 并让它开机时自动启动:

1
2
sudo systemctl start docker
sudo systemctl enable docker

Docker 容器打包

先写好Dockerfile,怎么写可以根据需要问chatgpt,它的本质作用是只在镜像化的时候才会调用。

下面是使用 commit 命令直接把容器打包成镜像:

1
docker commit [容器ID或名称] new_image_name

这里的打包尤其要注意不同系统的指令集架构不同,会导致打包的镜像不可用。比如 MacOS 为 arm64,而Ubuntu 用的 amd64,不过这个可以在创建镜像或容器实例化时指定。

然后用 save 命令输出到指定路径,方便上传:

1
docker save -o image_name.tar your_image_name

可以使用 load 指令还原镜像:

1
docker load -i image_name.tar

如果用Dockerfile创建镜像的话,可以参考下面的指令:

1
docker build --progress=plain -t kg-vs-backend-latest -f ./.devcontainer/Dockerfile /usr/Project/PCCKGVisualization

-t 后面是镜像名,-f 后面是 Dockerfile 位置,最后面的路径为指定 Dockerfile 的上下文。

实例化一个容器并配置转发接口、挂载位置:

1
docker run -d -p 8000:8000 -v ./PCCKGVisualization:/IdeaProjects/PCCKGVisualization kg-vs-backend

MacOS 服务器连接

  1. ssh 连接:先设置好服务器密码,默认用户名是 root 。然后用

    1
    
    ssh root@公网IP
    

    连接,然后输入密码即可。

  2. vscode 的 remote-ssh 连接:不解释,很简答。

文件上传与下载

  • 下载:

    1
    
    scp root@139.x.x.x:/home/test.txt /home/
    
  • 上传:

    1
    
    scp /home/test.txt root@139.x.x.x:/home