当执行安装软件命令的时候,系统要求指定出apt-get的执行方法或是运行环境。
改成这个:
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
没记错的话当时我应该是换了个国内源就OK 了
根目录吧
你是说自动的那种吗
这个我也遇到过,实在不行在docker build的时候加个参数--network host应该就可以了
当然可以,像一些mysql tomcat镜像,只需要引一些基础的操作系统然后自己利用命令如curl进行下载即可,这样就是新的一个镜像了。完全可以from ubuntu然后你自己下载这些软件作为你自己平时开发的脚手架镜像。
daemon off
你写成了deamon off
容器里的nginx路径是不是写错了,错误提示是没有 /usr/sbin/nginx这样的文件或目录
ENTRYPOINT 只能写一个 run可以多个,我感觉用run也可以 但是没有试验,可以试一下
看下云主机得组安全策略,80端口这些开放等
alpine很小但我估计有一些东西里面默认是没有的,而ubuntu这类传统linux系统应该比较齐全。但我看目前使用alpine作为基础镜像的比较多。
docker images看看有没有你说的 yrj/hello-nginx
不知道你具体问题
到时把命令历史发出来啊
你确定你命令中有端口映射参数 例如 -p 8080:80
apt-get update试试,不行就换源
可以用zsh,然后选择打开syntax on 他就识别语法了
可能你本地已经有运行的程序把80端口占了,因为80端口是一个 比较常用的端口,你可以换一个别的端口试一下
错误提示你的tag的名字是无效的
<meta charset="utf-8">
加入这个
进入容器内部后,通过nginx -V命令,查到nginx.conf文件路径:
通过vim /etc/nginx/nginx.conf命令查看该文件,发现http模块中并没有server模块,但是发现有一行:
通过cd /etc/nginx/sites-enabled/命令查看:
通过vim /etc/nginx/sites-available/default命令打开该文件,看到了server模块和默认页面读取的路径和文件:
于是切换至/var/www/html目录:
发现默认页面读取的就是这个index.nginx-debian.html文件,打开:
而我的Dockerfile是这么写的:
COPY index.html /usr/share/nginx/html(此处想当然了,然而经过上述分析,默认页面读取的html文件根本不是/usr/share/nginx/html目录下的index.html!)
因此在Dockerfile文件中应该写COPY index.html /var/www/html,也就是和老师视频中所写的一样,我之所以会写COPY index.html /usr/share/nginx/html,是因为老师提到这个目录因人而异,因此我通过find / -name "index.html"命令找到了/usr/share/nginx/html/index.html,想当然的改动了这个文件,而nginx根本不读取它。
你用80吧,nginx的默认端口就是80,你暴漏别的端口应该是找不到nginx的
进容器看看nginx有没正常安装、启动
docker exec -it 容器id /bin/bash
ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"] 命令和数组之间要有空格
"/user/"错了,改为"/usr/"
我也是太粗心了
需要特别安装的。安装很快的。
https://stackoverflow.com/questions/20995351/docker-how-to-get-container-information-from-within-the-container?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
run 是创建容器。 cmd 创建后自动执行。