先创建一个本地的目录
[root@localhost /]# mkdir nginx &&cd nginx
下载示例的配置文件留着备用
wget http://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/5/sample/nginx/global.conf
wget http://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/5/sample/nginx/nginx.conf
创建一个Dockerfile
注意文件名一定要写正确
vi Dockerfile
输入下面的内容
FROM ubuntu:14.04
MAINTAINER cocosgirl "123@qq.com"
ENV REFRESHED_AT 2018-2-2
RUN apt-get update
RUN apt-get -y -q install nginx
RUN mkdir -p /var/www/html
ADD global.conf /etc/nginx/conf.d/
ADD nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
制作镜像
然后执行docker build进行镜像的制作,这里注意后面的/nginx文件夹,如果有加,可能会报push image denied requested access to the resource is denied错误
docker build -t cocosgirl/nginx ../nginx
创建完成后,用docker images查看所有镜像
docker images
运行镜像
执行命令docker run运行此镜像
docker prun -d -p 80 --name website -v$PWD/website:/var/www/html/website cocosgirl/nginx nginx
执行docker ps –l查看网站的端口,可以看到对外映射的端口是32768。
在宿主机的/nginx/website目录下添加index.html文件,输入hello world!
发布镜像
先在https://hub.docker.com上注册一个帐号,然后在本地登录到hub上
如果未登录,会报denied: requested access to the resource is denied错误
docker login
然后执行push操作,注意镜像的名称要符合格式:注册用户名/镜像名
docker push cocosgirl/nginx
这一步要是报这个错,denied: requested access to the resource is denied
解决方式:
docker tag cocosgirl/nginx:latest 自己的登录名/nginx:latest
然后重新执行push操作
Push完成后可以在页面上看到push上来的镜像
到这里就完成镜像的创建,上传了。
可以换一台服务器或者就在自己服务器上,docker pull 试验一下下载自己创建的镜像
docker pull cocosgirl/nginx
查看镜像: docker images
运行: docker run -d -p 80 --name website -v$PWD/website:/var/www/html/website cocosgirl/nginx nginx
会看到目录下生成了website,在website目录下添加index.html文件,输入hello world!
查看启动的端口 docker ps -l
在浏览器上试验: http://服务器IP:32768
试验成功, OK了。
查看运行中的docker容器: docker container ls
root@instance-lvzxy101:~/docker# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
79bc4fe145e2 cocosgirl/nginx "nginx" 47 minutes ago Up 47 minutes 0.0.0.0:32768->80/tcp website
关闭运行中的docker容器: docker container stop 79bc4fe145e2
下一节再继续深入了解docker。
参考:
https://blog.csdn.net/lileihappy/article/details/80511287