赞
踩
docker容器相比于虚拟机来说,比如一个虚拟机可以运行10个web服务器,那么用docker的话,
就可能运行15个web服务器,,节省了许多空间和内存等等,个人理解
docker pull nginx #下载nginx服务
docker run -d -p 80:80 容器id #运行容器服务
docker ps #查看在运行的服务
docker rm -f 容器id #删除镜像
docker rmi 容器id #删除容器
docker stop 容器id #停止容器
docker images #查看所有的服务
docker exec -it 容器id /bin/sh #进入容器服务
docker stats 容器id #查看服务占用资源
docker cp 容器id:/etc/passwd /var/tmp/ #将docker容器中的/etc/passwd 拷贝到本机的/var/tmp 下
1>:COPY命令的使用
COPY /html /usr/share/nginx/html/ #将本机的html目录copy 到容器服务中的/usr/share/nginx/html/下
2>:WORKDIR命令的使用
WORKDIR /Create #在容器服务中创建/Create目录
3>:RUN命令的使用
RUN echo "123456789" >>1.txt #执行shell命令,将数字追加到1.txt中去
4>:VOLUME
VOLUME /html /usr/share/nginx/html/ #将html目录映射到/usr/share/nginx/html/目录下
例如启动nginx服务,要指定端口和映射的目录等,如果要启动一个,还可以,如果每次都是重复的动作,那就非常无聊和繁琐了,所以使用
dockerfile文件来存储这些命令,使用的时候调用一下,就可以使用该容器服务,是非常方便的。
docker run -d -p 80:80 -v /html:/usr/share/ngxin/html/ nginx
-d:后台运行该容器,不占用前台资源
-p:指定映射的端口,前面为本机端口,后面的为容器服务的端口
-v:指定映射的目录文件,前面的为本机目录文件,后面的为容器服务的目录文件
nginx 为要启动的容器名称
例如下面这个dockerlife文件
FROM nginx:alpine
COPY html/ /usr/share/nginx/html/
COPY conf/nginx.conf /etc/nginx/
EXPOSE 80
这个dockerfile文件,除了第一行都是非必要的元素
第一行:FROM是指定这个dockerfile文件是基于那个镜像的,如果是httpd或者其他的,修改了就可以
第二行:COPY是指将本机下的html目录下的内容 复制到容器服务usr/share/nginx/html/的目录下(这个目录保存.html和.php文件)
第三行:指定暴露的端口号为80
上面建立dockerf文件后,如果要使用的话
首先:docker build -t <自定义文件名> . # 最后的.是指定当前的目录
然后:docker run <自定义文件名>
最后就可以访问nginx服务了 但是还是不方便,所以要使用docker-compose.yml文件来统一实现
version: "3"
services:
nginx:
ports:
- 80:80
build: .
php:
image: devilbox/php-fpm:5.2-work-0.89
volumes:
- /root/html:/var/www/html
只要指定对应的端口号,可能只在dockerfile文件中定义就可以了,但我没弄懂这个,还是在docker-compose中定义了端口号,
build . 是指运行和docker-compose同级目录下的的Dockerfile文件,然后生成镜像就可以访问nginx服务了
测试结束
(qq:九七二四三九三二九(972439329),有哪里出错欢迎指正,大家一起学习交流)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。