近期需要修改镜像中的证书,于是百度了一下,记录下修改过程
镜像获取
首先下载需要修改的镜像
[root@localhost backend]# docker pull swr.cn-east-2.myhuaweicloud.com/dvo/saas-yw-web:1.0.0
1.0.0: Pulling from dvo/saas-yw-web
Digest: sha256:8ea9642e397715660a77e89d3826a4a259b6310afd156fb2f9ae36549a8e974a
Status: Downloaded newer image for swr.cn-east-2.myhuaweicloud.com/dvo/saas-yw-web:1.0.0
swr.cn-east-2.myhuaweicloud.com/dvo/saas-yw-web:1.0.0
[root@localhost backend]# docker images | grep saas
swr.cn-east-2.myhuaweicloud.com/dvo/saas-yw-producer 1.0.0 91249f9b17c6 10 months ago 239MB
swr.cn-east-2.myhuaweicloud.com/dvo/saas-yw-web 1.0.0 05bb69c9fa5f 10 months ago 135MB
启动镜像并做出修改
docker run -it swr.cn-east-2.myhuaweicloud.com/dvo/saas-yw-web:1.0.0 /bin/bash
[root@afcaf46e8305 /]#
注意afcaf46e8305是产生的容器ID,前面运行的时候不要-d后台运行了,不然无法进入容器交互执行模式。
若是镜像有参数,则使用-e指定参数, 多个参数则使用多个-e
docker run -e PORT=8888 -e HTTP_PORT=9999 -it swr.cn-east-2.myhuaweicloud.com/dvo/saas-yw-web:1.0.0 /bin/bash
[root@afcaf46e8305 /]#
进入并修改容器
先查看容器是否启动
[root@localhost backend]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a4a465df0e17 swr.cn-east-2.myhuaweicloud.com/dvo/saas-yw-producer:1.0.0 "sh -c 'java -jar /a…" 27 seconds ago Up 27 seconds
然后进入容器
[root@localhost backend]# docker exec -it a4a465df0e17 /bin/bash
OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown
[root@localhost backend]# docker exec -it a4a465df0e17 /bin/sh
/app #
docker中宿主机与容器(container)互相拷贝传递文件的方法
- 从容器拷贝文件到宿主机
docker cp containerID:/opt/testnew/file.txt /opt/test/
- 从宿主机拷贝文件到容器
docker cp /opt/test/file.txt containerID:/opt/testnew/
docker cp /home/yunwei/server.jks a4a465df0e17:/app/app/resources
把容器打包成镜像
# docker commit containerID new-container-name
# docker commit a4a465df0e17 centos-vim
# 打包新镜像
[root@localhost yunwei]# docker commit a4a465df0e17 swr.cn-east-2.myhuaweicloud.com/dvo/saas-yw-producer:1.0.1
sha256:84293ed01dcabbbf20c818afb9066e9b7532564d4450acab07fd8ce36a44301e
# 查看镜像
[root@localhost yunwei]# docker images|grep saas
swr.cn-east-2.myhuaweicloud.com/dvo/saas-yw-producer 1.0.1 84293ed01dca 26 seconds ago 239MB
docker commit options说明
- -a :提交的镜像作者;
- -c :使用Dockerfile指令来创建镜像;
- -m :提交时的说明文字;
- -p :在commit时,将容器暂停。
将容器a4a465df0e17 保存为新的镜像,并添加提交人信息和说明信息。
docker commit -a "runoob.com" -m "my apache" a4a465df0e17 mymysql:v1
推送
最后将打包的镜像推送到华为云
首先登录华为云,再执行下面
sudo docker tag saas-yw-producer:1.0 swr.cn-east-2.myhuaweicloud.com/dvo/saas-yw-producer:1.0.1
sudo docker push swr.cn-east-2.myhuaweicloud.com/dvo/saas-yw-producer:1.0.1
网友评论