之前(大概去年或前年)想在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 星期三