Tôi hiện đang cố gắng triển khai đăng ký docker cho Amazon ec2 bằng cách sử dụng ansible. Nhiệm vụ từ sách dạy nấu ăn của tôi trông giống như sau:Ổ đĩa Docker: Docker Volume không được gắn chính xác trên Amazon Linux
- name: run docker registry container
docker:
image: registry
name: docker-registry
state: reloaded
env:
SETTINGS_FLAVOR: local
STORAGE_PATH: /opt/docker-registry
SEARCH_BACKEND: sqlalchemy
volumes:
- "/data/docker-registry-server/opt/docker-registry:/opt/docker-registry"
ports:
- "5000:5000"
Như bạn có thể thấy đăng ký được triển khai dưới dạng vùng chứa bên trong đế. Điều này hoạt động ở một mức độ nào đó. Vùng chứa được bắt đầu chính xác nhưng âm lượng không được gắn chính xác. Tôi đã kiểm tra điều này bằng cách chạy:
docker exec -t -i docker-registry touch /opt/docker-registry/touch.me
Điều này tạo tệp mới trong thư mục chứa âm lượng. Vì vậy, tập tin này sẽ xuất hiện trên máy chủ trong /data/docker-registry-server/opt/docker-registry
nhưng nó không xuất hiện.
Khi chạy docker inspect docker-registry
tôi nhận được kết quả này:
[{
"AppArmorProfile": "",
"Args": [],
"Config": {
"AttachStderr": false,
"AttachStdin": false,
"AttachStdout": false,
"Cmd": [
"docker-registry"
],
"CpuShares": 0,
"Cpuset": "",
"Domainname": "",
"Entrypoint": null,
"Env": [
"SETTINGS_FLAVOR=local",
"SEARCH_BACKEND=sqlalchemy",
"STORAGE_PATH=/opt/docker-registry",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"DOCKER_REGISTRY_CONFIG=/docker-registry/config/config_sample.yml"
],
"ExposedPorts": {
"5000/tcp": {}
},
"Hostname": "7d4bb2448234",
"Image": "registry",
"MacAddress": "",
"Memory": 0,
"MemorySwap": 0,
"NetworkDisabled": false,
"OnBuild": null,
"OpenStdin": false,
"PortSpecs": null,
"StdinOnce": false,
"Tty": false,
"User": "",
"Volumes": {
"/opt/docker-registry": {}
},
"WorkingDir": ""
},
"Created": "2015-04-20T14:00:44.547620575Z",
"Driver": "devicemapper",
"ExecDriver": "native-0.2",
"ExecIDs": [
"5ea0f2a69b5010ee769963ea030dbf5016bef15f50515c120c3e1d27edb64e03",
"4d7cdbc371bc7bd7eddc73f531fe4e538186556b59b20da74ffa705ab31306c0"
],
"HostConfig": {
"Binds": [
"/data/docker-registry-server/opt/docker-registry:/opt/docker-registry:rw"
],
"CapAdd": null,
"CapDrop": null,
"ContainerIDFile": "",
"Devices": null,
"Dns": null,
"DnsSearch": null,
"ExtraHosts": null,
"IpcMode": "",
"Links": null,
"LxcConf": null,
"NetworkMode": "",
"PidMode": "",
"PortBindings": {
"5000/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "5000"
}
]
},
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"RestartPolicy": {
"MaximumRetryCount": 0,
"Name": ""
},
"SecurityOpt": null,
"VolumesFrom": null
},
"HostnamePath": "/var/lib/docker/containers/7d4bb2448234962ba8f9da87d3650b38e608a1e405130ba6b35200f52e07ce5b/hostname",
"HostsPath": "/var/lib/docker/containers/7d4bb2448234962ba8f9da87d3650b38e608a1e405130ba6b35200f52e07ce5b/hosts",
"Id": "7d4bb2448234962ba8f9da87d3650b38e608a1e405130ba6b35200f52e07ce5b",
"Image": "59b1f7d49dc843631b9be86f581f9c8a726f7cea8a5c37e648c822e40e440633",
"MountLabel": "",
"Name": "/docker-registry",
"NetworkSettings": {
"Bridge": "docker0",
"Gateway": "172.17.42.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.62",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"LinkLocalIPv6Address": "fe80::42:acff:fe11:3e",
"LinkLocalIPv6PrefixLen": 64,
"MacAddress": "02:42:ac:11:00:3e",
"PortMapping": null,
"Ports": {
"5000/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "5000"
}
]
}
},
"Path": "docker-registry",
"ProcessLabel": "",
"ResolvConfPath": "/var/lib/docker/containers/7d4bb2448234962ba8f9da87d3650b38e608a1e405130ba6b35200f52e07ce5b/resolv.conf",
"RestartCount": 0,
"State": {
"Error": "",
"ExitCode": 0,
"FinishedAt": "0001-01-01T00:00:00Z",
"OOMKilled": false,
"Paused": false,
"Pid": 21595,
"Restarting": false,
"Running": true,
"StartedAt": "2015-04-20T14:00:44.791121849Z"
},
"Volumes": {
"/opt/docker-registry": "/data/docker-registry-server/opt/docker-registry"
},
"VolumesRW": {
"/opt/docker-registry": true
}
}
]
này vẻ với tôi như chứa chính nó biết rằng nó nên sử dụng một khối lượng. Mục nhập Volumes
liệt kê đường dẫn chính xác. Vì vậy, điều này rất có thể là một docker và không phải là một vấn đề ansible.
Tôi đang sử dụng Docker 1.5.0, xây dựng a8a31ed/1.5.0
Tại thời điểm này tôi tin chắc đó rất có thể là một sai lầm ngu ngốc trong cách khối lượng nên được sử dụng. (Rất có thể là lỗi của tôi ...)
Ai đó có thể cho tôi biết tôi đã đi sai ở đâu không?
Bạn có chắc chắn rằng liên lạc đã hoạt động? Bạn có thể xem tệp bên trong trong vùng chứa sau đó không? –
@AdrianMouat tệp đã được tạo trong vùng chứa. Tôi đã đăng nhập vào vùng chứa bằng cách sử dụng '' 'docker exec -t -i docker-registry bash''' và sử dụng' 'ls'' để xem xét. –
Trông giống như một lỗi. Rất nhiều người có vấn đề với devicemapper - hãy thử aufs hoặc overlay nếu bạn có thể. –