Centos下的纯命令记录Docker学习(10)-docker

2020-11-13  本文已影响0人  小钟钟同学

参考:https://www.cnblogs.com/beyang/p/11416646.html

docker-compose 常用命令

指定后个yaml问文件进行编排构建且后台运行

[root@localhost dockerflask]# docker-compose -f docker-compose.yaml up -d

:停止正在运行的服务


[root@localhost dockerflask]# docker-compose stop
Stopping dockerflask_nginx_yaml ... done
Stopping dockerflask_01_yaml    ... done
Stopping dockerflask_02_yaml    ... done
Stopping dockerflask_redis_yaml ... done
Stopping dockerflask_pg_yaml    ...

关闭所有容器并删除,默认保留 数据卷

[root@localhost dockerflask]# docker-compose down
Stopping dockerflask_nginx_yaml ... done
Stopping dockerflask_01_yaml    ... done
Stopping dockerflask_02_yaml    ... done
Stopping dockerflask_redis_yaml ... done
Stopping dockerflask_pg_yaml    ... done
Removing dockerflask_nginx_yaml ... done
Removing dockerflask_01_yaml    ... done
Removing dockerflask_02_yaml    ... done
Removing dockerflask_redis_yaml ... done
Removing dockerflask_pg_yaml    ... done
Removing network dockerflask_default
[root@localhost dockerflask]#

docker-compose ps:列出当前运行的服务状态和相关信息

[root@localhost dockerflask]# docker-compose -f docker-compose.yaml up -d
Creating network "dockerflask_default" with the default driver
Creating dockerflask_redis_yaml ... done
Creating dockerflask_pg_yaml    ... done
Creating dockerflask_01_yaml    ... done
Creating dockerflask_02_yaml    ... done
Creating dockerflask_nginx_yaml ... done
[root@localhost dockerflask]# docker-compose ps
         Name                       Command               State           Ports
----------------------------------------------------------------------------------------
dockerflask_01_yaml      gunicorn main:app -c ./gun ...   Up      0.0.0.0:1255->80/tcp
dockerflask_02_yaml      gunicorn main:app -c ./gun ...   Up      0.0.0.0:1256->80/tcp
dockerflask_nginx_yaml   /docker-entrypoint.sh ngin ...   Up      0.0.0.0:80->80/tcp
dockerflask_pg_yaml      docker-entrypoint.sh postgres    Up      0.0.0.0:5432->5432/tcp
dockerflask_redis_yaml   docker-entrypoint.sh redis ...   Up      0.0.0.0:6379->6379/tcp
[root@localhost dockerflask]#

配合常用的命令

$  docker ps # 查看所有正在运行容器
$  docker stop containerId # containerId 是容器的ID
$  docker ps -a # 查看所有容器
$  docker ps -a -q # 查看所有容器ID

$  docker stop $(docker ps -a -q) #  stop停止所有容器
$  docker  rm $(docker ps -a -q)  #  remove删除所有容器

docker-compose 其他一些说明

1:depends_on

项目中的容器一般情况下会有先后启动的程序,比如的flask中,我们的示例是启动的flask后就会去实例化一个reids连接,所有容器的会有一个气的顺序要求。这个时候就需要标记哪些服务依赖什么启动后再去执行。


version: '3'
services:
  flask:
    build: .
    depends_on:
      - db
      - redis
  redis:
    image: redis
  db:
    image: mysql

如上的示例下面容器会先启动 redis 和 db 两个服务,最后才启动 flask服务,另外默认情况下使用 docker-compose up flask 启动 flask 服务的话,也会同事的启动 redis 和 db ,因为在配置文件中定义了他们之间的依赖关系。

2:links

主用是用于解决的是容器连接问题,与Docker client的--link一样效果

links:
 - db
 - db:database (取别名)
 - redis

查看对于的/etc/hosts里创建:

172.4.0.14  db
172.4.0.14  database
172.4.0.15  redis

3: extra_hosts

主要的作用是给容器添加对应的营生的别名,类似向/etc/hosts文件中添加记录,与Docker client的--add-host类似:

extra_hosts:
 - "flask01:172.242.195.82"
 - "flask02:172.0.209.229"

启动之后查看容器内部可以查看hosts。

4: volumes

关于目录的挂载,可以挂载一个目录或已存在的数据卷容器,注意识相点是挂载目录的路径问题

(1)只是指定一个路径,Docker 会自动在创建一个数据卷(这个路径是容器内部的)。

volumes:
  - /var/lib/mysql

(2)使用绝对路径挂载数据卷

 volumes:
    - /opt/data:/var/lib/mysql

(3) 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器。

 volumes:
    - ./cache:/tmp/cache

(4)使用用户的相对路径(~/ 表示的目录是 /home/<用户目录>/ 或者 /root/)。

volumes:
   - ~/configs:/etc/configs/:ro

(5) 已经存在的命名的数据卷。

volumes:
   - datavolume:/var/lib/mysql
上一篇 下一篇

猜你喜欢

热点阅读