为了在登台计算机上使用docker-compose,我关注了https://docs.docker.com/engine/admin/host_integration/文章并构建了以下设置:
/etc/systemd/system/docker-app-name.service

[Unit]
Requires=docker.service
After=docker.service

[Service]
User=deploy
Restart=always
ExecStart=/usr/local/bin/docker-compose -f /var/local/docker/app-name/docker-compose.yml up --build -d
ExecStop=/usr/local/bin/docker-compose -f /var/local/docker/app-name/docker-compose.yml down

[Install]
WantedBy=default.target
/var/local/docker/app-name/docker-compose.yml
version: '2'
services:
  postgresql:
    image: 'postgres'
    ports:
      - '5432:5432'
    volumes:
      - './pg_data:/var/lib/postgresql/data'
  elasticsearch:
    image: 'elasticsearch:2.3.2'
    ports:
      - '9200:9200'
      - '9300:9300'
    volumes:
      - './es_data:/usr/share/elasticsearch/data'

现在,当我尝试使用start docker-app-name.service启动该服务时,它崩溃并在systemlog中显示以下消息
Aug 31 01:51:05 vps89002 systemd[1]: Started app docker compose.
Aug 31 01:51:06 vps89002 dockerd[2142]: time="2016-08-31T01:51:06.265742663-04:00" level=error msg="Handler for GET /v1.22/networks/app_default returned error: network app_default not found"
Aug 31 01:51:06 vps89002 docker-compose[4817]: Creating network "app_default" with the default driver
Aug 31 01:51:06 vps89002 systemd-udevd[4825]: Could not generate persistent MAC address for br-13f110ac1292: No such file or directory
Aug 31 01:51:06 vps89002 kernel: [  278.755372] IPv6: ADDRCONF(NETDEV_UP): br-13f110ac1292: link is not ready
Aug 31 01:51:06 vps89002 docker-compose[4817]: Creating app_elasticsearch_1
Aug 31 01:51:06 vps89002 docker-compose[4817]: Creating app_postgresql_1
Aug 31 01:51:06 vps89002 kernel: [  278.829454] aufs au_opts_verify:1597:dockerd[2292]: dirperm1 breaks the protection by the permission bits on the lower branch
Aug 31 01:51:06 vps89002 kernel: [  278.851449] aufs au_opts_verify:1597:dockerd[2154]: dirperm1 breaks the protection by the permission bits on the lower branch
Aug 31 01:51:06 vps89002 kernel: [  278.869046] aufs au_opts_verify:1597:dockerd[2154]: dirperm1 breaks the protection by the permission bits on the lower branch
Aug 31 01:51:06 vps89002 kernel: [  278.891462] aufs au_opts_verify:1597:dockerd[2292]: dirperm1 breaks the protection by the permission bits on the lower branch
Aug 31 01:51:06 vps89002 kernel: [  278.932693] aufs au_opts_verify:1597:dockerd[2324]: dirperm1 breaks the protection by the permission bits on the lower branch
Aug 31 01:51:06 vps89002 systemd-udevd[4905]: Could not generate persistent MAC address for veth7f53ad2: No such file or directory
Aug 31 01:51:06 vps89002 kernel: [  278.943708] device veth7f53ad2 entered promiscuous mode
Aug 31 01:51:06 vps89002 kernel: [  278.943821] IPv6: ADDRCONF(NETDEV_UP): veth7f53ad2: link is not ready
Aug 31 01:51:06 vps89002 kernel: [  278.943826] br-13f110ac1292: port 1(veth7f53ad2) entered forwarding state
Aug 31 01:51:06 vps89002 kernel: [  278.943831] br-13f110ac1292: port 1(veth7f53ad2) entered forwarding state
Aug 31 01:51:06 vps89002 kernel: [  278.943850] br-13f110ac1292: port 1(veth7f53ad2) entered disabled state
Aug 31 01:51:06 vps89002 systemd-udevd[4902]: Could not generate persistent MAC address for veth23b3700: No such file or directory
Aug 31 01:51:06 vps89002 kernel: [  278.955237] aufs au_opts_verify:1597:dockerd[2292]: dirperm1 breaks the protection by the permission bits on the lower branch
Aug 31 01:51:06 vps89002 kernel: [  278.982582] device vethec6017b entered promiscuous mode
Aug 31 01:51:06 vps89002 kernel: [  278.982643] IPv6: ADDRCONF(NETDEV_UP): vethec6017b: link is not ready
Aug 31 01:51:06 vps89002 kernel: [  278.982648] br-13f110ac1292: port 2(vethec6017b) entered forwarding state
Aug 31 01:51:06 vps89002 kernel: [  278.982654] br-13f110ac1292: port 2(vethec6017b) entered forwarding state
Aug 31 01:51:06 vps89002 kernel: [  278.982667] IPv6: ADDRCONF(NETDEV_CHANGE): br-13f110ac1292: link becomes ready
Aug 31 01:51:06 vps89002 kernel: [  278.982705] br-13f110ac1292: port 2(vethec6017b) entered disabled state
Aug 31 01:51:06 vps89002 systemd-udevd[4943]: Could not generate persistent MAC address for vethe690387: No such file or directory
Aug 31 01:51:06 vps89002 systemd-udevd[4947]: Could not generate persistent MAC address for vethec6017b: No such file or directory
Aug 31 01:51:06 vps89002 dockerd[2142]: time="2016-08-31T01:51:06-04:00" level=info msg="Firewalld running: false"
Aug 31 01:51:07 vps89002 dockerd[2142]: time="2016-08-31T01:51:07-04:00" level=info msg="Firewalld running: false"
Aug 31 01:51:07 vps89002 kernel: [  279.340207] eth0: renamed from veth23b3700
Aug 31 01:51:07 vps89002 kernel: [  279.340622] IPv6: ADDRCONF(NETDEV_CHANGE): veth7f53ad2: link becomes ready
Aug 31 01:51:07 vps89002 kernel: [  279.340647] br-13f110ac1292: port 1(veth7f53ad2) entered forwarding state
Aug 31 01:51:07 vps89002 kernel: [  279.340653] br-13f110ac1292: port 1(veth7f53ad2) entered forwarding state
Aug 31 01:51:07 vps89002 kernel: [  279.376588] eth0: renamed from vethe690387
Aug 31 01:51:07 vps89002 kernel: [  279.376837] IPv6: ADDRCONF(NETDEV_CHANGE): vethec6017b: link becomes ready
Aug 31 01:51:07 vps89002 kernel: [  279.376861] br-13f110ac1292: port 2(vethec6017b) entered forwarding state
Aug 31 01:51:07 vps89002 kernel: [  279.376867] br-13f110ac1292: port 2(vethec6017b) entered forwarding state
Aug 31 01:51:07 vps89002 docker-compose[5164]: Stopping app_postgresql_1 ...
Aug 31 01:51:07 vps89002 docker-compose[5164]: Stopping app_elasticsearch_1 ...
Aug 31 01:51:08 vps89002 kernel: [  280.339669] br-13f110ac1292: port 1(veth7f53ad2) entered disabled state
Aug 31 01:51:08 vps89002 kernel: [  280.341479] veth23b3700: renamed from eth0
Aug 31 01:51:08 vps89002 kernel: [  280.363141] br-13f110ac1292: port 2(vethec6017b) entered disabled state
Aug 31 01:51:08 vps89002 kernel: [  280.363206] vethe690387: renamed from eth0
Aug 31 01:51:08 vps89002 kernel: [  280.368592] br-13f110ac1292: port 1(veth7f53ad2) entered disabled state
Aug 31 01:51:08 vps89002 kernel: [  280.369280] device veth7f53ad2 left promiscuous mode
Aug 31 01:51:08 vps89002 kernel: [  280.369283] br-13f110ac1292: port 1(veth7f53ad2) entered disabled state
Aug 31 01:51:08 vps89002 kernel: [  280.382025] br-13f110ac1292: port 2(vethec6017b) entered disabled state
Aug 31 01:51:08 vps89002 kernel: [  280.382446] device vethec6017b left promiscuous mode
Aug 31 01:51:08 vps89002 kernel: [  280.382448] br-13f110ac1292: port 2(vethec6017b) entered disabled state
Aug 31 01:51:08 vps89002 docker-compose[5164]: #033[1A#033[2K#015Stopping app_elasticsearch_1 ... done#015#033[1B#033[2A#033[2K#015Stopping app_postgresql_1 ... done#015#033[2BRemoving app_postgresql_1 ...
Aug 31 01:51:08 vps89002 docker-compose[5164]: Removing app_elasticsearch_1 ...
Aug 31 01:51:08 vps89002 docker-compose[5164]: #033[2A#033[2K#015Removing app_postgresql_1 ... done#015#033[2B#033[1A#033[2K#015Removing app_elasticsearch_1 ... done#015#033[1BRemoving network app_default
Aug 31 01:51:08 vps89002 systemd[1]: Stopped app docker compose.

最佳答案

尝试从docker-app-name.service文件中的 ExecStart 中删除 -d 选项,此处不需要分离模式

关于docker - 无法使用systemd启动docker-compose: “aufs au_opts_verify: dirperm1 breaks the protection by the permission bits on the lower branch”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39241867/

10-10 18:18