首页 > 其他 > 详细

docker-compose 学习

时间:2021-05-12 00:25:27      阅读:58      评论:0      收藏:0      [点我收藏+]
docker-compose: 多容器依赖构建工具
	docker-compose -f docker-compose.yml up # -f 指定一个文件
	docker-compose build # 构建镜像
	docker-compose up -d # 不显示log
	docker-compose up # 默认构建docker-compose.yml
	docker-compose images
	docker-compose exec service(mysql) bash # 进入容器
	docker-compose ps # 类似docker ps
	docker-compose stop # 停止不删除容器 
	docker-compose start # 启动
	docker-compose down # 停止并删除
	docker-compose rm redis  # 删除指定容器
	docker network ls  查看容器网络 
	#验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。 
	docker-compose config  -q  
	docker-compose logs  nginx  	#查看nginx的日志 
	docker-compose logs -f nginx  	#查看nginx的实时日志
	# 水平扩展 web增加为3个
	docker-compose up --scale web=3 -d
services:主要用来定义各个容器。
  web:  # 自定义的名字
  	# 服务的镜像名称或镜像 ID,如果镜像在本地不存在,Compose 将会尝试拉取这个镜像。
    image: hello-world 
    # 基于一份 Dockerfile,在使用 up 启动之时执行构建任务,这个构建标签就是 build,它可以指定 Dockerfile 所在文件夹的路径
    build:
      context: .
      dockerfile: Dockerfile
    # 使用 command 可以覆盖容器启动后默认执行的命令。
    command: bundle exec thin -p 3000
    # 如果你想完全控制容器的命名,可以使用这个标签指定:
    container_name: appxxx
    # depends_on这个标签解决了容器的依赖、启动先后的问题:
    # 注意的是,默认情况下使用 docker-compose up web 这样的方式启动 web 服务时,也会启动 redis 和 db 两个服务,因为在配置文件中定义了依赖关系。
    depends_on:
      - db
      - redis
    # 与Docker client的--link一样效果,会连接到其它服务中的容器。
    links:
      - db
      - redis
    # 将PID模式设置为主机PID模式,跟主机系统共享进程命名空间。容器使用这个标签将能够访问和操纵其他容器和宿主机的名称空间。
    pid: "host"
    #映射端口的标签,使用HOST:CONTAINER格式或者只是指定容器的端口,宿主机会随机映射端口。
    ports:
      - "3000"
 	  - "8000:8000"
 	#挂载一个目录或者一个已存在的数据卷容器,可以直接使用 [HOST:CONTAINER] 这样的格式,或者使用 [HOST:CONTAINER:ro] 这样的格式,后者对于容器来说,数据卷是只读的,这样可以有效保护宿主机的文件系统。
 	# Compose的数据卷指定路径可以是相对路径,使用 . 或者 .. 来指定相对目录。
	# 数据卷的格式可以是下面多种形式:
	volumes:
  	  #只是指定一个路径(容器挂载路径),Docker 会自动在创建一个数据卷(这个路径是容器内部的)。
  	  - /var/lib/mysql
  	  #使用绝对路径挂载数据卷(主机opt容器var)
  	  - /opt/data:/var/lib/mysql
   	  # 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器。
  	  - ./cache:/tmp/cache
  	  # 使用用户的相对路径(~/ 表示的目录是 /home/<用户目录>/ 或者 /root/)。
  	  - ~/configs:/etc/configs/:ro
  	  # 已经存在的命名的数据卷。
  	  - datavolume:/var/lib/mysql
  	# 加入指定网络,格式如下:
  	networks:
      - front-tier
      - back-tier
  redis:
    image: redis
  db:
    image: postgres
   
 其他: 
 #还有这些标签:cpu_shares, cpu_quota, cpuset, domainname, hostname, ipc, mac_address, mem_limit, memswap_limit, privileged, read_only, restart, shm_size, stdin_open, tty, user, working_dir 
 #上面这些都是一个单值的标签,类似于使用docker run的效果。
	cpu_shares: 73
	cpu_quota: 50000
	cpuset: 0,1

	user: postgresql
	working_dir: /code

	domainname: foo.com
	hostname: foo
	ipc: host
	mac_address: 02:42:ac:11:65:43

	mem_limit: 1000000000
	memswap_limit: 2000000000
	privileged: true

	restart: always

	read_only: true
	shm_size: 64M
	stdin_open: true
	tty: true
		  
  	  



volumes:定义services使用到的volume

networks:定义需要使用到的network.

  

 


作者:左蓝
链接:https://www.jianshu.com/p/2217cfed29d7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

docker-compose 学习

原文:https://www.cnblogs.com/412013cl/p/14757216.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!