创建Docker容器
docker run -p 80 --name web -i -t ubuntu /bin/bash
创建一个命名为web的ubuntu容器, 具体的命令参数可查阅官方文档。
安装Nginx
执行完上面的命令后, 程序会自动进入容器中, 我们通过Nginx提供web服务,首先执行一下:
apt-get update
避免无法安装软件。
再来安装Nginx服务程序:
apt-get install -y nginx
安装完后,执行ngixn 命令启动nginx的服务。然后通过系统命令top或者ps -ef 查看nginx的启动情况。
后台运行容器
如果想让容器一直运行,并且退出bash命令界面,可安装ctrl键的同时按p, 再按q键 退出容器的命令界面。
会看到有 “read escape sequence”的提示。
容器运行状态
docker ps
查看web容器的运行状态。
本地端口映射
我们在创建容器时,并没有将容器的80端口手动映射到本地,那么程序会自动映射到本地的随机一个端口,查看对应端口命令:
docker port web(容器的名称/ID)
结果:
80/tcp -> 0.0.0.0:32770
docker命令查看容器中进程
docker top web
结果:
aaab@linux:~$ docker top web
UID PID PPID C STIME TTY TIME CMD
root 20662 20644 0 10:59 pts/0 00:00:00 /bin/bash
root 20775 20662 0 10:59 ? 00:00:00 nginx: master process nginx
www-data 20776 20775 0 10:59 ? 00:00:00 nginx: worker process
www-data 20777 20775 0 10:59 ? 00:00:00 nginx: worker process
www-data 20778 20775 0 10:59 ? 00:00:00 nginx: worker process
www-data 20781 20775 0 10:59 ? 00:00:00 nginx: worker process
www-data 20782 20775 0 10:59 ? 00:00:00 nginx: worker process
www-data 20783 20775 0 10:59 ? 00:00:00 nginx: worker process
www-data 20784 20775 0 10:59 ? 00:00:00 nginx: worker process
www-data 20785 20775 0 10:59 ? 00:00:00 nginx: worker process
g
网站访问
既然容器的web服务已经开启,那么可以通过容器的IP来访问web站点。如何获取容器的ip ?
docker inspect web(容器名称/ID)
从结果中可以找到对应的IP,本次测试所获得IP是 172.17.0.2 所以我们可以通过curl或者本地浏览器来访问http://172.17.0.2
或者通过inpsect 或者 docker port web 命令查找出映射到本地端口, 通过本地IP+端口的形式访问, 192.168.1.158:32700
此处要注意的是: 如果容器重启IP或者映射本地的端口都将可能发生变化, 如果没有手动设置。
重启web容器后, nginx没有运行。
可以动过docker exec web nginx 命令, 开启nginx服务。
另外记录一点:
stop状态下, 可通过docker start -i web 直接进入容器命令界面。
在后台模式,可以通过docker attach web 命令进入命令界面。