【实操记录】docker hello world

发布于:2025-07-26 ⋅ 阅读:(18) ⋅ 点赞:(0)

Docker可以在Windows10中使用,但是需要是64位专业版、企业版或教育版

我们的PC基本都是家庭版

所以直接在阿里云服务器ECS实例上(Ubuntu 22.04 64位)操作

ECS有现成的安装Docker的实践教程

安装Docker并使用镜像仓库ACR_云服务器 ECS(ECS)-阿里云帮助中心

但是在安装部署的过程中遇到了以下几个问题和解决方法,可能是误打误撞但是先记一下

(由于后面有点别的事情所以导致和ECS连接超时了,错误信息没留到T_T)

1、安装后在启动docker时失败

sudo systemctl start docker

解:卸载后重装

2、拉取Nginx镜像时失败

sudo docker pull nginx:latest

解:配置Docker Hub镜像源,编辑配置文件/etc/docker/daemon.json

{
    "registry-mirrors":["<加速器地址>"]
}

【阿里云容器镜像服务ACR镜像加速器】地址在【容器镜像服务控制台】

3、创建Dockerfile设置Nginx作为基础镜像,并在Web服务器的根目录创建一个显示Hello World!的index.html文件

sudo tee Dockerfile <<-'EOF'
FROM nginx:latest
RUN echo 'Hello World!' > /usr/share/nginx/html/index.html
EOF

构建镜像,镜像名称为hello-world

sudo docker build . -t hello-world:latest

 启动Web程序镜像的容器,并且命名容器名称为hello-world

sudo docker run -d -p 80:80 --name hello-world hello-world:latest

这里报了两个错:

1、大概是说“hello-world”这个name已经被其他container占用了,需要我把原来这个删除掉再创建,或者换一个其他的新name

解:我把代码改成了下面这样,就是启动"hello-world:latest"这个程序镜像,将其命名为hello-docker-world"

sudo docker run -d -p 80:80 --name hello-docker-world hello-world:latest

2、 这里就变成新的错误了,刚好朋友来聊天,问了他,他是这么翻译的:

“80端口被占用了,80端口是http协议的默认端口,443是https的默认端口,不用想了”

“我一般做映射都是直接干10000以后的”

我又问“那个80:80是什么意思呢”

“前面是宿主机端口,后面是docker容器的端口”

“如果是10086:80,就表示在访问宿主机的10086端口的时候等同于访问docker容器的80端口”

于是我把命令改成了

sudo docker run -d -p 10000:80 --name hello-world hello-world:latest

继续报错如下

 说的是,这个叫"/hello-world-docker"的container已经被使用了

朋友解答的是:

“即使没run成功也会给你创建,这个时候,你得删了那个报错的再run,docker rm [id or name]”

“删之前要先stop, docker stop [id or name]”

所以大概是这个意思:

于是我照他说的又执行了一次,成功了:


网站公告

今日签到

点亮在社区的每一天
去签到