我们刚刚安装了一个nginx镜像,现在我们就试着用它来创建一个nginx容器。
1、创建一个容器
首先查看一下我们的本地镜像 docker images nginx
留意镜像对应的ID,等下会用到的
创建并启动容器:
命令如下:
docker run -d --name helloNginx -p 8080:80 55f4
也可以使用镜像名称创建:
docker run -d --name helloNginx -p 8080:80 nginx
参数说明:
- -d 指定容器以守护进程方式在后台运行
- –name 指定容器名称,此处我指定的是helloNginx
- -p 指定主机与容器内部的端口号映射关系,格式 -p [宿主机端口号]:[容器内部端口],此处我使用了主机8080端口,映射容器80端口
- 55f4 是我们nginx的镜像IMAGE ID前4位
命令执行后返回了创建后的容器ID,6e895a3b07…,代表已经成功创建了nginx容器
查看一下,容器进程里面是否有我们刚刚创建的docker ps
可以看到,我们创建的容器进程,说明创建运行成功
2、访问容器
我们刚刚用8080端口与容器的80端口进行了映射,创建启动容器成功后,我们访问一下试试!
http://centOS主机地址:8080
可以看到,我们成功的访问到了nginx容器的服务
3、修改容器,本地挂载的方式
因为我们的容器里面的配置文件或者html文件需要修改或者替换,最方便的方式,就是使用本地目录挂载至容器
3.1 在本地创建挂载目录
mkdir -p /usr/local/docker/nginx/conf #配置文件目录
mkdir -p /usr/local/docker/nginx/log #日志目录
mkdir -p /usr/local/docker/nginx/html #html文件存放目录
3.2 从容器中复制nginx.conf及conf.d文件夹
- 将容器nginx.conf文件复制到宿主机
docker cp helloNginx:/etc/nginx/nginx.conf /usr/local/docker/nginx/conf/nginx.conf
helloNginx 是我们刚刚创建容器的名字
- 将容器conf.d文件夹下内容复制到宿主机
docker cp helloNginx:/etc/nginx/conf.d /usr/local/docker/nginx/conf/conf.d
3.3 删除原nginx容器
- 找到nginx对应的容器id
docker ps -a
- 关闭该容器
docker stop 容器ID
- 删除该容器
docker rm 容器ID
4、挂载方式启动容器
docker run -p 8080:80 --name myNginx -v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/docker/nginx/conf/conf.d:/etc/nginx/conf.d -v /usr/local/docker/nginx/log:/var/log/nginx -v /usr/local/docker/nginx/html:/usr/share/nginx/html -d nginx
这里主要使用了docker run
的-v
参数实现的挂载,其他参数,大家已经知道了
这里 -v参数使用方法:-v 容器内目录:本地目录
5. 结果测试
在宿主机html文件夹(/usr/local/docker/nginx/html)下创建index.html文件,随便写一个html:
<h1>
Hello Docker!!
<br>
Hello Nginx!!!
</h1>
这样,修改本地目录文件,就可以实现修改配置或者操作文件了!
也可以通过这位大神写的两种方式来修改!