尝试制作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
只要打开以下网站,就算成功。