参考链接
下载安装:
docker pull nginx
启动容器:
docker run --name mynginx -p 80:80 -d nginx
其中 docker run 表示启动一个容器 --name mynginx 表示指定容器名字为ngx
-d表示后台运行 -p表示映射端口 nginx默认端口为80
在外部如果希望通过windows来访问 使用虚拟机ip加上80端口即可访问 不需要访问容器的ip
bash命令处理器
nginx启动后,为了调用nginx命令,需要进入bash。
docker exec -it mynginx bash
其中-it表示已交互式方式执行
成功以后就可以执行nginx的命令了:
如 nginx -v
挂载配置文件
挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录,访问此目录就等同于访问设备文件。
我们需要在外部映射一个文件(就是映射nginx.conf) 我们就可以在物理机上去修改配置文件 docker里面的配置文件也会做相应的修改
- 首先在本机创建nginx的一些文件存储目录
mkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf
- 将nginx-test容器配置文件copy到本地
docker cp 481e121fb29f:/etc/nginx/nginx.conf /root/nginx/conf
- 添加selinux规则,将要挂载的目录添加到白名单:
关于容器执行权限
chcon -Rt svirt_sandbox_file_t /root/nginx
docker run -d -p 80:80 --name nginx-web -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx nginx
启动容器成功!
- 在本机/root/nginx/www目录下创建index.html内容为
vi index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>docker搭建nginx</title>
</head>
<body>
<h1>docker搭建nginx映射成功</h1>
<p>666666666</p>
</body>
</html>
访问主机端口即可
意外
从网站上复制的命令总是出现一些诡异的错误:
如下报错:
Error parsing reference: "/root/redis/data:/data" is not a valid repository/tag: invalid reference format.
这种情况的解决办法就是手动敲一遍
docker run -d --privileged=true -p 6379:6379 -v /root/redis/conf/redis.conf:/etc/redis/redis.conf -v /root/redis/data:/data --name myredis redis redis-server /etc/redis/redis.conf