尝试制作Dockerfile并从创建Docker镜像到启动容器进行操作

首先,
开始,
起初,
首要,
一开始,

– Docker学习笔记
– Docker学习笔记1:从安装Docker到运行HelloWorld
– Docker学习笔记2:尝试创建Docker镜像
– Docker学习笔记3:创建Dockerfile并从构建镜像到启动容器进行尝试 ←这一部分
– Docker学习笔记4:容器间通信
– Docker学习笔记5:网络通信

做的事情 (zuò de

创建Docker文件并生成Docker镜像。

参考资料
Docker入门(第四篇)~关于Dockerfile~

手順概要:
1. 从DockerHub获取CentOS的Docker镜像。
2. 创建一个基于CentOS镜像的Docker镜像(命名为tomcat:7),将Tomcat的tar.gz文件复制到其中。
3. 创建一个使用tomcat:7作为基础镜像的Dockerfile,用于构建Docker镜像。
4. 使用Dockerfile来构建Docker镜像。
5. 使用构建好的Docker镜像启动一个容器。

复习

在CentOS 7上安装Docker (ami-045f38c93733dd48d)。

$ sudo yum-config-manager --enable Extra
$ sudo yum install container-selinux
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ ll /etc/yum.repos.d/
$ sudo yum install docker-ce
$ sudo yum list installed | grep docker-ce
$ sudo systemctl start docker
$ sudo systemctl status docker

从CentOS的Docker镜像中拉取

$ docker pull centos:7
$ mkdir -p /root/tomcat-container/logs
$ docker run -it -d -p 18080:8080 -v /root/tomcat-container/logs:/share/logs --name tomcat centos:7

系指為了某件事情而做好準備的行動或過程。

1-1. 制作Docker文件

创建一个 Dockerfile

我想使用Nano,所以需要安装它。

yum install nano

创建 Dockerfile

mkdir cent-tomcat
cd cent-tomcat
touch Dockerfile
sudo nano Dockerfile

Dockerfile的內容。


FROM centos:7
RUN yum install -y java
ADD files/apache-tomcat-9.0.31.tar.gz /opt/
CMD [ "/opt/apache-tomcat-9.0.31/bin/catalina.sh", "run" ]

准备1-2个Apache文件。

在Docker文件的同一层级创建一个名为”files”的文件夹,并存储apache文件。

文件结构会如何变化

[centos@ip-172-31-0-62 cent-tomcat]$ tree
.
├── Dockerfile
└── files
    └── apache-tomcat-9.0.31.tar.gz

使用Docker文件创建Docker镜像。

$ cd <Dockerfileが存在するディレクトリ>
$ docker build -t tomcat:1 .
$ docker images

如果Docker镜像已经创建成功,那就是成功了。

[centos@ip-172-31-5-50 cent-tomact]$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              1                   1a24f3cd25e8        17 seconds ago      502MB
centos              7                   5e35e350aded        3 months ago        203MB

也生成了一个基于CentOS的映像文件。

※ 背景 ※
无法仅删除基于Centos的Docker镜像。因为存在依赖关系,哦哦。

[centos@ip-172-31-5-50 cent-tomact]$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
tomcat              1                   44f9a4e385f1        About a minute ago   502MB
centos              7                   5e35e350aded        3 months ago         203MB
[centos@ip-172-31-5-50 cent-tomact]$ sudo docker rmi 5e35e350aded
Error response from daemon: conflict: unable to delete 5e35e350aded (cannot be forced) - image has dependent child images

运行容器。

$ docker run -it -d --name tomcat-1 -p 18083:8080 tomcat:1
[centos@ip-172-31-0-62 cent-tomcat]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                           PORTS                     NAMES
e9814858bec8        tomcat:1            "/opt/apache-tomcat-…"   7 seconds ago       Up 6 seconds                     0.0.0.0:18083->8080/tcp   tomcat-1
94d9fd8f516a        centos:7            "/bin/bash"              2 hours ago         Exited (137) About an hour ago                             tomcat
$ docker exec -it tomat-1 bash

只要打开以下网站,就算成功。

广告
将在 10 秒后关闭
bannerAds