当前位置: 首页 > backend >正文

【实操记录】docker hello world

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]”

所以大概是这个意思:

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

http://www.xdnf.cn/news/16201.html

相关文章:

  • 二开----02
  • Colab中如何临时使用udocker(以MinIO为例)
  • Kotlin 内联函数
  • LeetCode|Day25|389. 找不同|Python刷题笔记
  • 小程序安卓ApK转aab文件详情教程MacM4环境
  • C++中std::string和std::string_view使用详解和示例
  • Redis数据库入门教程
  • 前端安全问题怎么解决
  • 一篇文章了解HashMap和ConcurrentHashMap的扩容机制
  • Node.js 中的内置模板path
  • 论文阅读:《Many-Objective Evolutionary Algorithms: A Survey. 》多目标优化问题的优化目标评估的相关内容介绍
  • 机器翻译编程
  • 【安卓笔记】解决livedata粘性事件
  • 在 Alpine Linux 中创建虚拟机时 Cgroup 挂在失败的现象
  • Springboot宠物用品商城的设计与实现
  • 详解力扣高频SQL50题之197. 上升的温度【简单】
  • 星慈光编程虫2号小车讲解第二篇--向左向右平移
  • Python编程进阶知识之第五课处理数据(matplotlib)
  • Unity VS Unreal Engine ,“电影像游戏的时代” 新手如何抉择引擎?(结)
  • 100条SQL语句分类精讲:从基础到进阶的实操指南
  • 医疗系统国产化实录:SQL Server国产替代,乙方保命指南
  • 机器学习的基础知识
  • 洛谷 P1996 约瑟夫问题之题解
  • kafka的shell操作
  • 多源信息融合智能投资【“图神经网络+强化学习“的融合架构】【低配显卡正常运行】
  • MapStruct类型转换接口未自动注入到spring容器中
  • 快速将前端得依赖打为tar包(yarn.lock版本)并且推送至nexus私有依赖仓库(笔记)
  • 《C++》面向对象编程--类(下)
  • LLM中的位置嵌入矩阵(Position Embedding Matrix)是什么
  • matrix-breakout-2-morpheus靶机通关教程