1. 映射端口
我们可以使用-p参数来映射端口
docker run -p 容器外端口:容器内端口
现在我们有这样一个需求,就是使用宿主机的8080端口来访问nginx。
docker run -d -p8080:80 --name 8080-nginx e791337790a6
使用docker ps 看下容器,可以看到ports这栏将宿主机8080端口映射到容器的80端口上去了。
我们使用浏览器访问一下
2. 挂载数据卷
我们可以使用-v参数来挂载数据卷
docker run -v宿主机目录:容器目录
这里我们要将本地的html文件夹挂载到nginx容器里面
首先我们先把baidu的ag真人游戏首页down下来。
mkdir html
wget www.baidu.com -o index.html
使用-v参数挂载目录
docker run --rm -d --name v-nginx -p8080:80 -v /home/dc2-user/html:/usr/share/nginx/html e791337790a6
浏览器访问:
这时候我们就可以访问到刚才wget下来那个页面了,把这个页面放到宿主机 /home/dc2-user/html 目录下面了。
3. 传递环境变量
我们可以使用-e 参数来传递环境变量,传递环境变量是容器较虚拟机技术的优势,我们在启动虚拟机的时候没有好的办法传递参数,按照特定的想法来进行初始化,但是容器可以使用环境变量往容器中传递参数,从而打破信息孤岛。
docker run -e key=value
打印我们传递的环境变量(我们这边使用的nginx镜像):
docker run --rm --name print-env -e e_ports=1010 e791337790a6 printenv
我们可以看到我们自己传递的环境变量:e_ports=1010
4. 容器内安装软件
容器内安装软件需要我们进入容器中,然后使用yum/apt-get/apt等命令进行安装软件,这个命令需要看linux发行版版本。
我们先运行一个nginx容器:
docker run -d --rm --name tool-nginx -p8080:80 e791337790a6
然后进入容器终端:
docker exec -it 1f33f0abc17856be9118d030a4dba7e8fc560c4cf736b08c8d6fcaac0e38e165 /bin/bash
之后curl命令一下,发现没有
使用命令在容器内安装(apt-get update && apt-get install curl -y ):
最后在容器中执行curl命令发现就已经安装好了: