启动虚拟机并进入
$ docker-machine ls
$ docker-machine start default
$ docker-machine ip
192.168.99.100
$ docker-machine ssh default
docker@default ~$
从DockerHub中搜索Nginx镜像
docker@default ~$ docker search nginx
从DockerHub拉取Nginx镜像
docker@default ~$ docker pull nginx
docker@default ~$ docker images | grep nginx
运行容器
docker@default ~$ docker run -d -p 8000:80 --rm --name mynginx nginx
查看Ngnix容器是否已经启动
docker@default ~$ docker ps -a | grep mynginx
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2ea6cc94195d nginx "nginx -g 'daemon of…" 3 seconds ago Up 3 seconds 0.0.0.0:8000->80/tcp mynginx
使用浏览器访问 http://192.168.99.100:8000

Nginx
进入mynginx容器
docker@default ~$ docker exec -it mynginx bash
root@2ea6cc94195d:/#
查看Nginx安装地址
root@2ea6cc94195d:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
退出mynginx容器
root@2ea6cc94195d:/# exit
停止后删除mynginx容器
docker@default ~$ docker stop mynginx
如果在docker run中没有添加--rm选项,则需要docker stop后再docker rm移除镜像。
docker@default ~$ docker rm mynginx
目前虽然Docker中的Nginx已经运行起来,但是为了每次配置方便,我们需要将Nginx的配置文件、静态目录、日志目录挂载到宿主机上,这样在宿主机上修改配置后,可以同步到Docker中的Nginx中。
docker@default ~$ docker run -d -p 8000:80 -v /share/nginx/html:/usr/share/nginx/html --rm --name mynginx nginx
检查下是否挂载成功
docker@default ~$ docker ps -a | grep mynginx
59d01719ec69 nginx "nginx -g 'daemon of…" 7 seconds ago Up 6 seconds 0.0.0.0:8000->80/tcp mynginx
这里出现了一个问题是:如果我挂载mynginx容器中/etc/nginix目录则不能启动容器,怎么办呢?
经过检查发现在/etc/nginx/nginx.conf配置文件中配置多域名的最终文件在/etc/nginx/conf.d目录下,于是,我就改变的挂载点:
# 首先停止容器并自动删除
docker@default ~$ docker stop mynginx
# 重新设置挂载点后运行容器
docker@default ~$ docker run -d -p 8000:80 -v /share/nginx/html:/usr/share/nginx/html -v /share/nginx/etc/conf.d:/etc/nginx/conf.d --rm --name mynginx nginx
# 检查镜像是否启动成功挂载是否成功
docker@default ~$ docker ps -a|grep mynginx
416d2b067450 nginx "nginx -g 'daemon of…" 6 minutes ago Up 6 minutes 0.0.0.0:8000->80/tcp mynginx
这一次成功了,但是疑惑仍然留下心头。
未完待续...