|NO.Z.00010|——————————|CloudVirtualiZation|——|Cloud&Docker镜像.V02|——|创建tomcat镜像|
一、测试没有封装好前台守护进程的镜像运行容器,容器未exited状态
### --- library:官方的:官方的默认是一个底层的基础镜像;基础镜像包含一些工具和类库;
~~~ 基础镜像可以通过操作系统tar打包,
[root@localhost ~]# docker pull centos:6.8
6.8: Pulling from library/centos
### --- 删除全部容器
[root@localhost ~]# docker rm -f $( docker ps -a -q )
[root@localhost ~]# docker ps -a
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 6.8 82f3b5f3c58f 21 months ago 195 MB
### --- STATUS:Exited它执行的命令是/bin/bash;
~~~ 而此刻/bin/bash并没有得到我们授予终端的作用,随意就会推出,没有前台工作的进程
[root@localhost ~]# docker run --name test centos:6.8
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c33ecc6d9676 centos:6.8 "/bin/bash" 24 seconds ago Exited (0) 23 seconds ago
二、下载已经封装好前台守护进程镜像,运行是up状态
### --- 下载已经封装好前台守护进程镜像,运行是up状态
~~~ # 网易蜂巢:产品服务——>镜像仓库——>镜像中心——>centos
~~~ library/centos:较精简的镜像仓库,没有工作在前台的守护进程,一启动就会推出。
~~~ public/centos:包含了一些调试工具,wget等,注意在生产环境中使用public镜像仓库。封装了一些 工具
~~~ supervisord.conf;是工作在前台的一个进程,启动后会正常工作。
~~~ # 注:centos:7.0~7.6之间镜像不建议使用,有自己对应的systemd的工具,需要自己配置;建议使用6.7版本。
### --- 镜像下载地址:https://c.163yun.com/hub#/library/repository/info?repoId=1055
### --- 复制:docker pull hub.c.163.com/public/centos:6.7-tools
[root@localhost ~]# docker pull hub.c.163.com/public/centos:6.7-tools
6.7-tools: Pulling from public/centos
Digest: sha256:cade8d883b9bde4dc43fd233e4b76e6efd17980b6f61014fab11d666ab7f06ee
Status: Downloaded newer image for hub.c.163.com/public/centos:6.7-tools
[root@localhost ~]# docker images
hub.c.163.com/public/centos 6.7-tools b2ab0ed558bb 3 years ago 602 MB
[root@localhost ~]# docker run --name mysql -d hub.c.163.com/public/centos:6.7-tools //启动一个centos并在里面运行mysql
ec7f2957ea819753afc37538565ff12d8edeed38c72bc87c3c3466c2c8d5532e
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ec7f2957ea81 hub.c.163.com/public/centos:6.7-tools "/usr/bin/supervisord" 33 seconds ago Up 33 seconds 22/tcp
三、使用当前容器打包镜像commit的转换
### --- 使用当前容器打包镜像commit的转换
### --- 使用当前容器打包一个镜像:
[root@localhost ~]# docker exec -it mysql /bin/bash
[root@ec7f2957ea81 /]# yum install -y mysql mysql-server
[root@ec7f2957ea81 /]# service mysqld start
[root@ec7f2957ea81 /]# chkconfig mysqld on
[root@ec7f2957ea81 /]# mysqladmin -uroot password 123
[root@ec7f2957ea81 /]# mysql -uroot -p
### --- commit只是把当时的状态打包成镜像,
[root@localhost ~]# docker commit mysql mysql:5.1 // mysql:当前容器的名称 MySQL:5.1 创建的镜像名称:5.1是镜像的版本号
sha256:3ea843aab0eb33e65c347919a9f0f676e6bf1139ece1c5a8a7c7a39bd9e9075d
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.1 3ea843aab0eb About a minute ago 702 MB //我们自己创建的镜像
### --- 使用我们打包的镜像启动一个容器未mysql-my 3ea8:使用镜像ID创建
[root@localhost ~]# docker run --name mysql-my -d 3ea8
0485d25108a8f64ffe52af13560f9e5eb7c4331b9868a4653254d27da73bd653
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0485d25108a8 3ea8 "/usr/bin/supervisord" 45 seconds ago Up 45 seconds 22/tcp mysql-my
[root@localhost ~]# docker exec -it 0485d25108a8 /bin/bash
[root@0485d25108a8 /]# mysql -uroot -p
四、使用当前容器打包镜像dockerfile的转换
### --- 使用当前容器打包镜像dockerfile的转换
~~~ 网易蜂巢查找优秀的dockerfile文本:
~~~ https://c.163yun.com/hub#/home——>镜像中心——>wordpress——>END
五、使用dockfile创建一个Tomcat镜像(通过dockfile得到一个自己想要得到的镜像):
### --- 上传配置文件至服务器中:
[root@localhost ~]# mkdir tomcat
[root@localhost tomcat]# ls
apache-tomcat-7.0.42.tar.gz Dockerfile jdk-7u25-linux-x64.tar.gz
### --- 最后一个. 表示当前预处理当前dockerfile版本
[root@localhost tomcat]# docker build -t tomcat:v1.0 .
Sending build context to Docker daemon 104.3 MB
Step 1/8 : FROM hub.c.163.com/public/centos:6.7
6.7: Pulling from public/centos
Digest: sha256:318d49272d1ef825831051c558ccb24237f0e95ea0f30dde2c1e6cab11d62ecb
Status: Downloaded newer image for hub.c.163.com/public/centos:6.7
Removing intermediate container 8459e1403296
Successfully built b9700949f863
[root@localhost tomcat]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat v1.0 b9700949f863 3 hours ago 642 MB
### --- 通过IE浏览器可以访问Tomcat web界面
[root@localhost tomcat]# docker run --name tomcat -p 80:8080 -d tomcat:v1.0
00d30c7ce4d29a366c4cfcc5cbe26b56fbd6aff344827d74ad5d48e20f93d578
[root@localhost tomcat]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
00d30c7ce4d2 tomcat:v1.0 "/bin/sh -c '/root..." About a minute ago Up About a minute 22/tcp, 0.0.0.0:80->8080/tcp tomcat
[root@localhost tomcat]# docker ps -a --no-trunc
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
00d30c7ce4d29a366c4cfcc5cbe26b56fbd6aff344827d74ad5d48e20f93d578 tomcat:v1.0 "/bin/sh -c '/root/apache-tomcat-7.0.42/bin/startup.sh && tailf /root/apache-tomcat-7.0.42/logs/catalina.out'" 2 minutes ago Up 2 minutes 22/tcp, 0.0.0.0:80->8080/tcp tomcat
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv011-docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」