docker run 命令细节
docker run [参数] 镜像名/唯一id
-d代表后台启动,使用docker ps 会打印容器的完整id
–name 给容器起个名字,如果不使用–name则系统给出一个随机名字,
浏览器如何访问容器
原因:我们启动的容器是运行在我们自己的环境中的,每一个容器互相隔离且在主机中运行,每一个容器都拥有自己完整的文件系统,run启动就相当于将镜像安装到容器里边,采用80端口,想要访问这个镜像的话要访问主机中的相应容器,直接从浏览器访问是不现实的。
解决方法:
-p 外部端口:内部端口
访问指定外部端口就等同与访问指定内部端口------端口映射
例如:docker run -d --name myj -p 80:80 nginx
输出:全部id,
docker ps
输出的ports中显示0.0.0.0:80->80/tpc表示任何IP访问80端口就是容器内部的命令
如果再启动一个容器,内部能否再次使用80端口,外部继续使用80端口?
外部端口80可以重复,因为外部端口是占用主机的同一个机器只能拥有一个端口
内部端口也是可以重复的,因为主机内部的容器是相互隔离的,我有我的80端口,他有他的80端口,启动一个容器类似于构建一个虚拟机
docker exec 命令细节
如果要修改页面,就需要使用docker exec进入容器里,在容器中有一个文件路径存放默认页,那如何寻找默认页呢?此镜像的官方文档/hub.docker.com,介绍页面中有static content
docker exec -it 容器名或唯一id /bin/bash
-it参数表示以交互模式
/bin/bash表示使用交互模式使用bash控制台
此时就会进入容器当中,容器相当于一个极简的Linux,可以使用ls查看目录结构,
在其中修改页面时使用输出excho “内容” >index
cat 页面文件路径,查看结果
使用exit推出容器进入主机