0
点赞
收藏
分享

微信扫一扫

#yyds干活盘点#12.Docker提交(commit)镜像

半夜放水 2022-02-19 阅读 91

12.Docker提交(commit)镜像

场景介绍:

在前面使用Docker部署tomcat时,我们发现,从dockerhub官方下载下来的tomcat镜像中,webapps目录下是没有任何文件的,而webapps.dist下面是有的,因此我们在使用docker部署并启动好tomcat之后,访问tomcat地址会出现404页面,所以,我们自己做一个tomcat镜像,使得我们每次下载下来的tomcat镜像,使用docker部署并启动好tomcat之后,可以直接访问tomcat地址。

12.1. commit命令介绍

docker commit 提交一个容器成为一个新的镜像

语法:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

OPTIONS说明:

  • -a :提交的镜像作者;
  • -c :使用Dockerfile指令来创建镜像;
  • -m :提交时的说明文字;
  • -p :在commit时,将容器暂停。

CONTAINER说明:

  • 容器ID

REPOSITORY说明:

  • 目标镜像名称
  • TAG说明:镜像的版本号

示例:

将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。

docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1 该命令表示:将容器id=“a404c6c174a2”做为一个新的镜像提交,镜像的名称是:mymysql,版本号是:v1。

12.2.制作tomcat镜像

# 查看正在运行的容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps
CONTAINER ID   IMAGE                         COMMAND                  CREATED        STATUS        PORTS                                                                                  NAMES
381cff6289c0   portainer/portainer           "/portainer"             47 hours ago   Up 47 hours   0.0.0.0:9000->9000/tcp, :::9000->9000/tcp                                              portainer
967e9d855838   elasticsearch:7.6.2           "/usr/local/bin/dock…"   2 days ago     Up 2 days     0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
cb19a16a04d1   tomcat:9.0.58-jdk8-corretto   "catalina.sh run"        4 days ago     Up 4 days     0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                              tomcat01
040788c26e85   nginx                         "/docker-entrypoint.…"   4 days ago     Up 4 days     0.0.0.0:3031->80/tcp, :::3031->80/tcp                                                  nginx01
# 进入tomcat01容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker exec -it cb19a16a04d1 /bin/bash
bash-4.2# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps.dist  work
# 进入webapps目录下
bash-4.2# cd webapps
# 查看tomcat01容器中的webapps目录下的文件,可以看到是有ROOT等这些文件的
bash-4.2# ls
ROOT  docs  examples  host-manager  manager
bash-4.2# exit
exit
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps
CONTAINER ID   IMAGE                         COMMAND                  CREATED        STATUS        PORTS                                                                                  NAMES
381cff6289c0   portainer/portainer           "/portainer"             47 hours ago   Up 47 hours   0.0.0.0:9000->9000/tcp, :::9000->9000/tcp                                              portainer
967e9d855838   elasticsearch:7.6.2           "/usr/local/bin/dock…"   2 days ago     Up 2 days     0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
cb19a16a04d1   tomcat:9.0.58-jdk8-corretto   "catalina.sh run"        4 days ago     Up 4 days     0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                              tomcat01
040788c26e85   nginx                         "/docker-entrypoint.…"   4 days ago     Up 4 days     0.0.0.0:3031->80/tcp, :::3031->80/tcp                                                  nginx01
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# 

访问tomcat地址:http:[ip]:8080,如下图:
image202202091839.png

经过上面的一系列验证,当前运行的容器tomcat01,是可以访问http:[ip]:8080地址的;因此,我们将这个容器打包为一个镜像进行提交。

12.3.提交tomcat镜像

# 查看当前所有的镜像
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker images
REPOSITORY            TAG                    IMAGE ID       CREATED         SIZE
tomcat                9.0.58-jdk8-corretto   41702c6af95e   8 days ago      379MB
nginx                 latest                 605c77e624dd   6 weeks ago     141MB
redis                 latest                 7614ae9453d1   7 weeks ago     113MB
centos                latest                 5d0da3dc9764   5 months ago    231MB
portainer/portainer   latest                 580c0e4e98b0   11 months ago   79.1MB
elasticsearch         7.6.2                  f29a1ee41030   22 months ago   791MB
# 查看所有的容器
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps -a
CONTAINER ID   IMAGE                         COMMAND                  CREATED      STATUS      PORTS                                                                                  NAMES
381cff6289c0   portainer/portainer           "/portainer"             2 days ago   Up 2 days   0.0.0.0:9000->9000/tcp, :::9000->9000/tcp                                              portainer
967e9d855838   elasticsearch:7.6.2           "/usr/local/bin/dock…"   3 days ago   Up 3 days   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
cb19a16a04d1   tomcat:9.0.58-jdk8-corretto   "catalina.sh run"        4 days ago   Up 4 days   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                              tomcat01
040788c26e85   nginx                         "/docker-entrypoint.…"   4 days ago   Up 4 days   0.0.0.0:3031->80/tcp, :::3031->80/tcp                                                  nginx01
# 将容器ID=cb19a16a04d1打包并提交成为一个新的镜像,镜像名称是:tomcat_v
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker commit -a "person" -m "update webapps" cb19a16a04d1 tomcat_v:v1
sha256:aed546e632575db89861786dd89591606b20e064965b3a0c326af0932f03dbc1
# 查看当前所有的镜像,可以看到,增加了tomcat_v这个镜像
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker images
REPOSITORY            TAG                    IMAGE ID       CREATED         SIZE
tomcat_v              v1                     aed546e63257   4 seconds ago   384MB
tomcat                9.0.58-jdk8-corretto   41702c6af95e   8 days ago      379MB
nginx                 latest                 605c77e624dd   6 weeks ago     141MB
redis                 latest                 7614ae9453d1   7 weeks ago     113MB
centos                latest                 5d0da3dc9764   5 months ago    231MB
portainer/portainer   latest                 580c0e4e98b0   11 months ago   79.1MB
elasticsearch         7.6.2                  f29a1ee41030   22 months ago   791MB
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# docker ps -a
CONTAINER ID   IMAGE                         COMMAND                  CREATED      STATUS      PORTS                                                                                  NAMES
381cff6289c0   portainer/portainer           "/portainer"             2 days ago   Up 2 days   0.0.0.0:9000->9000/tcp, :::9000->9000/tcp                                              portainer
967e9d855838   elasticsearch:7.6.2           "/usr/local/bin/dock…"   3 days ago   Up 3 days   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
cb19a16a04d1   tomcat:9.0.58-jdk8-corretto   "catalina.sh run"        4 days ago   Up 4 days   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                              tomcat01
040788c26e85   nginx                         "/docker-entrypoint.…"   4 days ago   Up 4 days   0.0.0.0:3031->80/tcp, :::3031->80/tcp                                                  nginx01
[root@iZ8vb6lqqya4rvreq9ra6gZ ~]# 

至此,现在算是docker入门了

---------------------------EOF-------------------------

举报

相关推荐

0 条评论