docker-compose命令与操作

一、docker-compose主要基本命令

1)image 指定镜像

image: tomcat:8 

2)ports 端口映射

ports: #宿主机:容器
    - "8080:8080"

3)volumes 挂载数据卷

volumes:
    #- /root/webapp:/root/web
    - tomcat:/root/web

注意:挂载数据卷,若不是写的宿主机绝对路径,要在下面写上定义目录。
若使用自定义数据卷,还有通过external,来表示为true,并提前创建好目录

volumes: #定义目录 在之前加入项目名字
	tomcat:
		external: #使用自定义卷名 提前创建目录
			true 

4)networks 指定网桥

   networks: # 指定网桥
   	-ems

5)container-name 指定容器名称

container-name: mysql

6)command 覆盖容器默认命令
覆盖容器内容的默认命令 CMD的命令

command: "redis-server --appendonly yes" #覆盖容器内容的默认命令

7)environment 指定变量环境
如指定mysql登录密码

environment: 
     - MYSQL_ROOT_PASSWORD=root

8)env_file 从文件中获取变量
将6里面的MYSQL_ROOT_PASSWORD=root 可以写到配置文件中 如secrect.env,使得从配置文件中读取环境变量,解耦合。

env_file : 
	- ./webapps/secrect.env

9)depend_on 依赖容器
一个容器依赖其他容器,这样先启动其他容器。

depend_on : 
	- db  #写服务id
	- redis
	- tomcat

10)healthcheck 健康检查
容器运行状态进行检查

#在1m30s内 超时时间10s 重试3次
healthcheck : 
	test: ["CMD","curl","-f","http://localhost"]
	interval: 1m30s
	timeout: 10s
	retries: 3

11)sysctls 配置容器内核参数

sysctls: 
	net.core.somaxconn: 1024
	net.ipv4.tcp_syncookies: 0

12)ulimits 指定容器进程数

ulimits: 
	nproc: 65535
	nofile:
		soft: 20000
		hard: 40000

二、docker-compose基本命令模板

docker-compose up 
version: '3'
services:
  tomcat: #服务id唯一
   container-name: tomcat 
   image: tomcat:8 #创建当前服务所使用的镜像
   ports: #宿主机:容器
    - "8080:8080"
   volumes:
    #- /root/webapp:/root/web
    - tomcat:/root/web
   networks: # 指定网桥
   	-ems
   	
  tomcat02: #服务名唯一
   container-name: tomcat #指定容器名字
   image: tomcat:8 #创建当前服务所使用的镜像
   ports: #宿主机:容器
    - "8081:8080"
   volumes:
    #- /root/webapp:/root/web
    - tomcat02:/root/web
   networks:
   	-ems  	
 
  mysql:
  	image: mysql:5.7
	container-name: mysql
	ports: 
    - "3306:3306"
    volumes:
     - mysqldata:/var/lib/mysql
     - mysqlconf:/etc/mysql
    environment: 
     - MYSQL_ROOT_PASSWORD=root
    networks:
		hello

 redis:
  	image: redis:5.0.10
	container-name: redis
	ports: 
    - "6379:6379"
    volumes:
     - redisdata:/data
    networks:
		hello
	command: "redis-server --appendonly yes" #覆盖容器内容的默认命令

volumes: #定义目录 在之前加入项目名字
	tomcat:
		external: #使用自定义卷名 提前创建目录
			true 
    tomcat02:
    mysqldata:
    mysqlconf:
    redisdata:
    
networks:
	hello
	external: #使用自定义网桥 提前创建网桥
			true 

三、docker-compose build指令

作用:指定dockerfile 打包对应的镜像

demo:
	build: #先根据dockerfile 创建镜像
		context: ./demo #指定上下文目录 当前目录
		context: /usr/local/demo  #指定上下文目录
		dockerfil: Dockerfile
	container_name: demo
	ports:
	 -8080:8080
	networks:
		-ems
	depend_on:
		-tomcat

四、docker-compose 指令

1)up

docker-compose -f xxx up
-f 指定文件名
-p 指定项目名称 在创建数据卷什么的基于该名
-verbose 输出调试信息

2)down

docker-compose down # 移除容器 并移除网络和容器内部数据卷        

3)restart

docker-compose restart [指定容器名]
-t 指定超时时间  

4)rm

docker-compose rm [指定容器名]
-f 强制删除 
-v 删除挂载卷 

5)stop

6)top 查看容器运行进程

7)pause/unpause
暂停服务 / 恢复出于暂停状态中的服务

  build              Build or rebuild services
  bundle             Generate a Docker bundle from the Compose file
  config             Validate and view the Compose file
  create             Create services
  down               Stop and remove containers, networks, images, and volumes
  events             Receive real time events from containers
  exec               Execute a command in a running container
  help               Get help on a command
  images             List images
  kill               Kill containers
  logs               View output from containers
  pause              Pause services
  port               Print the public port for a port binding
  ps                 List containers
  pull               Pull service images
  push               Push service images
  restart            Restart services
  rm                 Remove stopped containers
  run                Run a one-off command
  scale              Set number of containers for a service
  start              Start services
  stop               Stop services
  top                Display the running processes
  unpause            Unpause services
  up                 Create and start containers

================================================================================

 links:
    - app
   volumes:
    - ./nginx/conf.d:/etc/nginx/conf.d
  app:
    image: app
    expose:
      - "8080"

五、docker可视化工具 portainer

启动

docker run -d 
		-p 8000:8000
		-p 9000:9000
		--name=protainer
		--restart=alw ays #只要停止就重启
		-v /var/run/docker.sock:/var/run/docker.sock
		-v portainer_data:/data
		portainer/portainer
docker run -d -p 8000:8000 -p 9000:9000 --name=protainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/portainer_data:/data portainer/portainer
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值