继此前Docker文章,本教程将讨论如何保存Docker容器放入一个新的形象,取出容器并运行一个容器内的Nginx的网络服务器。
在Docker容器中安装和运行应用程序 - 第2部分
要求
如何运行和保存Docker容器
在该示例中 ,我们将运行并保存在那里的Nginx服务器将安装一个基于UbuntuDocker容器。 但承诺容器任何更改之前,先开始与下面的命令,它会安装Nginx的守护到Ubuntu的镜像容器:
# docker run ubuntu bash -c "apt-get -y install nginx"
在Ubuntu Docker容器上安装Nginx
2.接下来,安装Nginx的包后,发出命令docker ps -l
得到的运行容器的编号或名称 。
# docker ps -l
查找Docker容器ID名称
并通过运行以下命令应用更改:
# docker commit 5976e4ae287c ubuntu-nginx
在这里, 5976e4ae287c
代表容器ID
和ubuntu-nginx
表示已保存提交更改新形象的名字。
为了查看,如果新的形象已经成功创建只需运行docker images
指挥所有保存图像的上市将被显示。
# docker images
Docker容器更改
有可能的是,容器内的安装过程快速结束,这导致不运行的容器(容器被停止)。 在这种情况下, docker ps
,因为没有容器运行命令将不会显示任何输出。
为了能仍然得到容器的id跑docker ps -a | head -3
docker ps -a | head -3
到输出的最新的容器,并确定基于发出的创建容器和退出状态的命令的容器。
3.另外,还可以积极进入运行容器会话docker run -it ubuntu bash
命令并执行进一步apt-get install nginx
命令。 当命令运行时,使用从容器分离Ctrl-p + Ctrl-q
键和容器将继续运行,即使Nginx的安装过程完成。
# docker run -it ubuntu bash # apt-get install nginx
在Docker容器上安装Nginx
然后,获得与正在运行的容器ID docker ps
和提交更改。 完成后,使用重新进入容器控制台docker attach
和类型exit
停止容器。
# docker ps # docker attach 3378689f2069 # exit
附加Docker容器
4.为了进一步测试,如果最近的图像已被正确地提交(在此情况下已被安装的Nginx服务),以便产生将是否已成功安装输出Nginx的二进制的新容器执行以下命令:
# docker run ubuntu-nginx whereis nginx
生成新的Docker容器
5.要删除的容器使用rm
命令对容器ID或名称,可以使用获得docker ps -a
命令:
# docker ps -a # sudo docker rm 36488523933a
删除Docker容器
如何在Docker容器中运行Nginx
6.在这一部分,我们将集中讨论如何可以运行并访问网络服务,如Nginx的网络服务器,里面Docker窗,使用ubuntu-nginx
在已安装的Nginx守护前面创建的图像。
你需要做的第一件事是创建一个新的容器,映射主机容器端口并通过发出以下命令进入容器shell:
# docker run -it -p 81:80 ubuntu-nginx /bin/bash # nginx &
在这里, -p
选项暴露了主机端口的容器港口。 虽然主机端口可以是任意的,但条件是它应该可用(没有其他主机服务应监听它),容器端口必须正好是内部守护程序正在监听的端口。
一旦你连接到容器的会话,启动Nginx的后台程序在后台,按从容器分离控制台Ctrl-p + Ctrl-q
键。
运行Nginx里面Docker容器
7.现在,运行docker ps
让你的跑步容器的状态。 您还可以通过发出以下命令查看主机网络套接字:
# docker ps OR # netstat -tlpn
查看Docker容器运行状态
8.为了参观由Nginx的容器服务的页面,在你的局域网的远程位置打开浏览器并使用HTTP协议输入您的机器的IP地址。
验证Nginx运行在Docker容器下
9.要停止容器中运行以下命令,然后用容器编号或名称:
# docker ps # docker stop fervent_mccarthy # docker ps
停止运行Docker容器
作为停止正在运行的容器的替代方法,请输入container shell命令提示符,并键入exit以完成进程:
# docker attach fervent_mccarthy # exit
请注意,使用这种容器来运行Web服务器或其他类型的服务最适合仅用于开发目的或测试,因为服务仅在容器运行时处于活动状态。 退出容器会中断所有正在运行的服务或所做的任何更改。