当前位置:   article > 正文

docker容器命令和dockerfile文件 以及docker-compose.yml文件的使用_docker run后面的命令怎样放到docker-compose.yml中执行

docker run后面的命令怎样放到docker-compose.yml中执行

【1】docker容器命令的使用

	docker容器相比于虚拟机来说,比如一个虚拟机可以运行10个web服务器,那么用docker的话,
	就可能运行15个web服务器,,节省了许多空间和内存等等,个人理解
  • 1
  • 2
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					#查看服务占用资源
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

docker 容器内的文件Copy

docker cp 容器id:/etc/passwd		/var/tmp/		#将docker容器中的/etc/passwd 拷贝到本机的/var/tmp 下
  • 1

【2】Dockerfile文件的使用

1>:COPY命令的使用

	COPY	/html	/usr/share/nginx/html/		#将本机的html目录copy 到容器服务中的/usr/share/nginx/html/下
  • 1

2>:WORKDIR命令的使用

	WORKDIR	/Create								#在容器服务中创建/Create目录
  • 1

3>:RUN命令的使用

	RUN	echo "123456789" >>1.txt				#执行shell命令,将数字追加到1.txt中去
  • 1

4>:VOLUME

	VOLUME	/html /usr/share/nginx/html/		#将html目录映射到/usr/share/nginx/html/目录下
  • 1
例如启动nginx服务,要指定端口和映射的目录等,如果要启动一个,还可以,如果每次都是重复的动作,那就非常无聊和繁琐了,所以使用
dockerfile文件来存储这些命令,使用的时候调用一下,就可以使用该容器服务,是非常方便的。
docker run -d -p 80:80 -v /html:/usr/share/ngxin/html/	nginx
	-d:后台运行该容器,不占用前台资源
	-p:指定映射的端口,前面为本机端口,后面的为容器服务的端口
	-v:指定映射的目录文件,前面的为本机目录文件,后面的为容器服务的目录文件
	 nginx 为要启动的容器名称
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

例如下面这个dockerlife文件

FROM nginx:alpine
COPY html/       /usr/share/nginx/html/
COPY conf/nginx.conf /etc/nginx/
EXPOSE 80
  • 1
  • 2
  • 3
  • 4
	这个dockerfile文件,除了第一行都是非必要的元素
	第一行:FROM是指定这个dockerfile文件是基于那个镜像的,如果是httpd或者其他的,修改了就可以
	第二行:COPY是指将本机下的html目录下的内容 复制到容器服务usr/share/nginx/html/的目录下(这个目录保存.html和.php文件)
	第三行:指定暴露的端口号为80
  • 1
  • 2
  • 3
  • 4

【3】docker-compose.yml文件的使用

	上面建立dockerf文件后,如果要使用的话
	首先:docker build -t  <自定义文件名> 	.						# 最后的.是指定当前的目录
	然后:docker run <自定义文件名>
	最后就可以访问nginx服务了	但是还是不方便,所以要使用docker-compose.yml文件来统一实现
  • 1
  • 2
  • 3
  • 4
version: "3"
services:
  nginx:
    ports:
     - 80:80
    build: .
  php:
    image: devilbox/php-fpm:5.2-work-0.89
    volumes:
     - /root/html:/var/www/html
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
	只要指定对应的端口号,可能只在dockerfile文件中定义就可以了,但我没弄懂这个,还是在docker-compose中定义了端口号,
	build . 是指运行和docker-compose同级目录下的的Dockerfile文件,然后生成镜像就可以访问nginx服务了
  • 1
  • 2

验证结果

在这里插入图片描述

测试结束
  • 1
(qq:九七二四三九三二九(972439329),有哪里出错欢迎指正,大家一起学习交流)
  • 1

End

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/74199
推荐阅读
相关标签
  

闽ICP备14008679号