2023-10-18
实测下来,跟 github 的原理差不多,少了很多复杂工序,比如init、add、commit等。
首先注册一个 Docker Hub 的用户名和密码。
新建一个 repository,随便命名,选择 public(注:private只允许放一个,多的要钱)
打开terminal:
docker images
docker login
按照要求输入用户名和密码即可
docker tag <本地repository名称>:<本地TAG> <Docker用户名>/<远程repository名称>:<远程TAG>
注意TAG名称一般是latest之类的,有的人会标注版本号;repository名称即对应Image Name,而不是id
例子:
docker tag terminal-blog-nomodule:latest commonlearner/terminal-blog:latest
docker push <Docker用户名>/<远程repository名称>:<远程TAG>
例子:
docker push commonlearner/terminal-blog:latest
需要在新主机上登录:
docker login
再pull
docker pull <dockerhub_username>/<repository_name>:<tag>
例子:
docker pull commonlearner/terminal-blog:latest
不使用Dockerhub也能实现image的复制:直接手动传输 Docker 镜像的 tar 文件。
首先,需要将容器提交为一个新的 Docker 镜像。使用 docker commit 命令:
docker commit <container_id_or_name> <new_image_name>:<tag>
例如:
docker commit my_container my_image:v1
使用 docker save 命令:
docker save -o <path_to_save_image.tar> <new_image_name>:<tag>
例如:
docker save -o my_image_v1.tar my_image:v1
可以使用 scp, rsync 或其他方法将 tar 文件传输到目标主机。
例如使用 scp:
scp my_image_v1.tar username@target_host:/path/on/target/host
首先,需要从 tar 文件中加载 Docker 镜像。使用 docker load 命令:
docker load -i <path_to_save_image.tar>
例如:
docker load -i /path/on/target/host/my_image_v1.tar
现在,你可以使用 docker run 命令从新加载的镜像启动容器。
例如:
docker run -d <other_options> my_image:v1
注意