1. 编写Dockerfile
(Dockfile 是Docker镜像设置文件)
1.1 首先创建并进入到example目录
mkdir example
cd example
1.2 将如下内容保存为Dockerfile文件
vi Dockerfile
2. 使用build命令创建镜像
(在保存Dockerfile文件的example目录钟执行如下命令)
sudo docker build --tag hello:0.1 .
运行这条命令我出现了3个问题:
2.1、提示我"/bin/sh: apt-get: command not found"
解决办法:我检查了我的LINUX版本后,发现我的包安装工具是yum,所以要把apt-get更换成yum
2.2、更换好了之后,出现了第二个问题,"Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist"
解决办法1:更换了镜像源,并没有解决问题解决问题,具体可参考问题解决:Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist:...-腾讯云开发者社区-腾讯云 (tencent.com)
解决办法2:最后发现,我当时是centos:latest,默认是centos的最新版本,但是我的虚拟机是centos7的版本,修改了Dockfile文件后问题解决。
2.3、接着指令没有问题之后,我需要回到example文件夹,但是发现cd example会出现错误提示"bash: cd: example: 没有那个文件或目录"
解决办法:首先”/“是根目录,”~“是家目录,我比对了之前顺利进入example文件夹的方式,发现之前是显示为"~"的情况下进入的,所以我输入cd ~后解决该问题。
3. 运行该镜像
sudo docker run --name hello-nginx -d -p 80:80 -v /root/data:/data hello:0.1
-d: 指在后台运行容器
-p 80:80: 将主机的80号端口与容器的80号端口连接起来,并暴露到外部。(连接http://<主机 IP>:80 就会连接到容器的80端口)