docker的使用(1): 部署nginx

之前(大概去年或前年)想在VPS上装个docker玩玩,后面发现我那VPS不支持docker,遂作罢。最近比较无聊,想继续看看docker,于是在虚拟机里装了个CentOS 7,然后装上了docker。


做点笔记,免得后面又忘了。


环境

电脑操作系统:Windows 7 64位

虚拟机:VirtualBox

虚拟机安装的操作系统:CentOS 7 64位


先互ping及访问下外网,看通信正不正常。可能出现的问题:

(1).win 7 ping不通虚拟机:

VirtualBox > 网络 > 设置。 默认为“NAT网络”,分配的为10开头的IP,和主机不在一个网络导致。改成 桥接网卡,分配192开头的IP,比如IP为192.168.1.200。


(2).虚拟机ping不通win 7:

Win7防火墙 > 入站规则 > 添加自定义规则 在后面的“此规则应用于哪些远程IP地址中” 把虚拟机的IP(如192.168.1.200) 添加进去。


查看虚拟机的IP

net addr



Docker

Docker,这个单词是“码头工人”的意思。官网:https://www.docker.com/


安装docker

这里选择的是docker CE版(社区版)。我装了一个putty用root连到虚拟机上,因为这样比较好复制命令。用root省得一些权限上的麻烦。

docker安装见:https://docs.docker.com/install/linux/docker-ce/centos/#upgrade-docker-ce



#启动docker、停止、重启

systemctl start docker
systemctl stop docker
systemctl restart docker



docker安装nginx

#创建3个目录(注意中间的空格),用于映射(挂载)容器里的 网站目录、nginx配置文件、nginx日志

mkdir -p /web/www /web/conf/conf.d /web/logs
chmod 777 /web/www /web/conf/conf.d /web/logs


#获取官方最新nginx,虚拟机需要能访问外网,否则无法下载

docker pull nginx


#没有任何挂载,直接映射端口并运行docker,在win7上访问http://192.168.1.200/正常即可看到nginx欢迎页面。

docker run -d -p 80:80 nginx


#挂载一个试试:挂载容器里的/usr/share/nginx/html目录到主机上的/web/www

docker run --name dcNginx -d -p 80:80 -v /web/www:/usr/share/nginx/html nginx

--name:自定义容器名,这边取名dcNginx,前缀dc表示docker

-d表示detach,分离。分离到后台运行

-p表示port,端口

-v表示volume,存储卷。给容器挂载存储卷

冒号左边的为主机的端口或路径、文件之类,右边为容器的。把容器映射到主机。


#在/web/www下创建一个index.html

cd /web/www
vi index.html

输入 It workssssss!


#从dcNginx容器中拷出配置文件到想映射的目录/web/conf/ 否则后面运行docker run的时候会提示挂载找不到文件或目录

docker cp dcNginx:/etc/nginx/nginx.conf /web/conf/nginx.conf

cp表示copy


添加一个default.conf到 conf.d下。这是因为安装完nginx.conf里默认有包含conf.d下的所有配置文件,所以至少要放一个conf文件给它包含。而且也需在里面配置默认站点。

cd /web/conf/conf.d
vi default.conf

输入:

server {
    listen       80;
    server_name  localhost;
         
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    location / {
         
        root   /usr/share/nginx/html;
        index  index.html index.htm;
         
    }
    location /api{
        proxy_pass http://192.168.1.1:9999/api;
        # access_log "logs/test.log";
         
    }
         
}

#以上nginx.conf和default.conf文件中路径为容器中nginx所在的相关的路径,因为是映射出来的,所以不要修改成主机的路径


运行以下前先删掉上面创建的dcNginx(删除方法见后面)


#完整

docker run --name dcNginx -p 80:80 \
-v /web/www:/usr/share/nginx/html  \
-v /web/conf/nginx.conf:/usr/share/nginx/nginx.conf \
-v /web/conf/conf.d:/etc/nginx/conf.d  \
-v /web/logs:/var/log/nginx \
-d nginx

在win7上访问 http://192.168.1.200/ 正常即可看到  It workssssss!





#进入容器

docker exec -it dcNginx /bin/bash

-it

i:STDIN 标准输入

t:tty,tty窗口


#比如要查看容器中的nginx版本

nginx -V


#退出容器

按组合键 Ctrl+P+Q


#启动停止dcNginx容器

docker stop dcNginx
docker start dcNginx

#删除容器

docker rm dcNginx

rm表示remove


#查看所有容器

docker ps -a

-a 表示 all


#查看正在运行的容器

docker ps



类别:OperationMaintenance   阅读(0)   评论(0)    发表时间:2018-06-06 20:07  星期三

评论区

发表评论

        姓名:
邮箱|网站:
        内容:

  (可按Ctrl+Enter提交)