运行 Ubuntu 服务器 22.04.4 LTS。
今天我做了一个apt update
并apt upgrade
进行了一些更新,然后我通过docker-compose pull
. 在我尝试通过 docker-compose 重新启动容器后,我收到了一系列有关容器配置的错误,并且许多容器拒绝启动。然后,当我运行时docker ps -a
,我看到一堆容器名称已更改为在先前名称之前包含随机字符串(例如 swag 现在为 5f6bfe94c235_swag)。我没有更改docker-compose.yml
文件中的任何内容,并且在此之前它一直运行良好。
当我运行时sudo docker-compose up -d
,我得到以下输出:
Traceback (most recent call last):
File "/usr/bin/docker-compose", line 33, in <module>
sys.exit(load_entry_point('docker-compose==1.29.2', 'console_scripts', 'docker-compose')())
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 81, in main
command_func()
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 203, in perform_command
handler(command, command_options)
File "/usr/lib/python3/dist-packages/compose/metrics/decorator.py", line 18, in wrapper
result = fn(*args, **kwargs)
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 1186, in up
to_attach = up(False)
File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 1166, in up
return self.project.up(
File "/usr/lib/python3/dist-packages/compose/project.py", line 697, in up
results, errors = parallel.parallel_execute(
File "/usr/lib/python3/dist-packages/compose/parallel.py", line 108, in parallel_execute
raise error_to_reraise
File "/usr/lib/python3/dist-packages/compose/parallel.py", line 206, in producer
result = func(obj)
File "/usr/lib/python3/dist-packages/compose/project.py", line 679, in do
return service.execute_convergence_plan(
File "/usr/lib/python3/dist-packages/compose/service.py", line 579, in execute_convergence_plan
return self._execute_convergence_recreate(
File "/usr/lib/python3/dist-packages/compose/service.py", line 499, in _execute_convergence_recreate
containers, errors = parallel_execute(
File "/usr/lib/python3/dist-packages/compose/parallel.py", line 108, in parallel_execute
raise error_to_reraise
File "/usr/lib/python3/dist-packages/compose/parallel.py", line 206, in producer
result = func(obj)
File "/usr/lib/python3/dist-packages/compose/service.py", line 494, in recreate
return self.recreate_container(
File "/usr/lib/python3/dist-packages/compose/service.py", line 612, in recreate_container
new_container = self.create_container(
File "/usr/lib/python3/dist-packages/compose/service.py", line 330, in create_container
container_options = self._get_container_create_options(
File "/usr/lib/python3/dist-packages/compose/service.py", line 921, in _get_container_create_options
container_options, override_options = self._build_container_volume_options(
File "/usr/lib/python3/dist-packages/compose/service.py", line 960, in _build_container_volume_options
binds, affinity = merge_volume_bindings(
File "/usr/lib/python3/dist-packages/compose/service.py", line 1548, in merge_volume_bindings
old_volumes, old_mounts = get_container_data_volumes(
File "/usr/lib/python3/dist-packages/compose/service.py", line 1579, in get_container_data_volumes
container.image_config['ContainerConfig'].get('Volumes') or {}
KeyError: 'ContainerConfig'
我可以使用以下命令手动启动容器:
sudo docker start <container_name>
重启docker服务并重启电脑都没有解决。知道这次更新出了什么问题以及如何修复它吗?
同样在这里。从 更改为 后,
docker-compose
它docker compose
可以正常工作,无需其他更改。现在,我的容器正在运行:
代替:
这是因为
docker-compose
V1 语法现已弃用。V2 语法是docker compose
,因为它现在是一个插件而不是一个单独的命令。我今天遇到了同样的问题。
这对我有用
有时你会得到这个,因为你有正在运行的容器。我在使用 ansible 剧本时遇到过这个错误,这对我有用。