目录
镜像是只读的,容器是可编辑的。Docker镜像是分层的,支持通过扩展镜像,创建新的镜像。
学到这里感觉docker跟git很像~~
通过docker commit将修改的容器做成新的镜像
# 将容器做成新的镜像
docker commit -m="提交备注" -a="作者" 容器ID 镜像名称:tag名称
一、进入容器修改内容
这里我们例举在容器内安装vim命令
docker exec -it 容器名或容器id /bin/bash
apt-get update
apt-get -v install vim
安装成功之后进行测试vim命令是否成功,成功后退出容器即可(exit或者ctrl+q+p)
which vim
或
vim test.txt
二、打包容器为新的镜像
docker commit
命令可以将一个运行中的容器快照为一个新的镜像。它的基本语法如下:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
其中,CONTAINER
是要创建镜像的容器 ID 或名称,REPOSITORY
是新镜像的名称(默认为当前用户),TAG
是新镜像的标签(默认为 latest
)。
docker commit
命令的常用选项包括:
-a, --author
: 新镜像的作者信息;-c, --change
: 在容器上执行更改命令;-m, --message
: 新镜像的注释信息;-p, --pause
: 在 commit 之前暂停容器。
docker commit -m="add vim" -a="test" 68083f814bd3 new-test:test
查看新的镜像,比对旧的镜像大小会有明显变化,也可以进入启动新的镜像测试vim命令是否可用
三、将镜像推送到云上(我用的Coding腾讯云)
上面的命令可以直接再coding中找到,如下图所示:
1.进入制品仓库,创建一个docker制品
2.点击操作指引,找到所有需要的命令,本次操作即可
3.docker推送镜像成功后,可在制品仓库中查看
四、本地服务放到docker中推送到云上的示例
将指定的文件打包成 .tar
文件,并使用 Docker 构建镜像并推送到腾讯云仓库中。具体步骤如下:
-
使用以下命令将需要的文件打包到
blast.tar
中:tar -cvpf blast.tar /work/blastP /work/blastP-db /work/blastP-file
-
创建一个名为
Dockerfile
的文件,并使用编辑器(如 vi)打开该文件,添加以下内容:FROM ubuntu:18.04 # 设置工作目录 WORKDIR /app # 复制项目文件到容器中 COPY blast.tar /app/blast.tar # 定义容器启动时的默认命令 CMD ["bash"]
-
登录到腾讯云仓库中,使用以下命令:
docker login -u test_ubuntu -p xxxxxxxxxxx test-docker.pkg.coding.net
-
在包含
Dockerfile
文件的目录下,执行以下命令构建 Docker 镜像:docker build -t blast .
-
修改镜像的名称,使用以下命令:
docker tag blast test-docker.pkg.coding.net/test/test_ubuntu/blast
-
将镜像推送到腾讯云仓库中,使用以下命令:
docker push test-docker.pkg.coding.net/test/test_ubuntu/blast:latest
Docker hub、阿里云也都适用~~~~