mirror of https://github.com/docker/docs.git
154 lines
3.6 KiB
Bash
154 lines
3.6 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load ../helpers
|
|
|
|
function teardown() {
|
|
swarm_manage_cleanup
|
|
stop_docker
|
|
}
|
|
|
|
@test "docker rmi" {
|
|
# Start one empty host and two with busybox to ensure swarm selects the
|
|
# right ones and rmi doesn't fail if one host doesn't have the image.
|
|
start_docker 1
|
|
start_docker_with_busybox 2
|
|
swarm_manage
|
|
|
|
# make sure image exists
|
|
run docker_swarm images
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"busybox"* ]]
|
|
|
|
# verify the nodes: the first one shouldn't have the image while the other
|
|
# two yes.
|
|
run docker -H ${HOSTS[0]} images
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" != *"busybox"* ]]
|
|
run docker -H ${HOSTS[1]} images
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"busybox"* ]]
|
|
run docker -H ${HOSTS[1]} images
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"busybox"* ]]
|
|
|
|
|
|
# wipe busybox.
|
|
docker_swarm rmi busybox
|
|
|
|
# swarm verify
|
|
run docker_swarm images -q
|
|
[ "$status" -eq 0 ]
|
|
[ "${#lines[@]}" -eq 0 ]
|
|
|
|
# verify the image was actually removed from every node.
|
|
for host in ${HOSTS[@]}; do
|
|
run docker -H $host images -q
|
|
[ "$status" -eq 0 ]
|
|
[ "${#lines[@]}" -eq 0 ]
|
|
done
|
|
}
|
|
|
|
@test "docker rmi prefix" {
|
|
start_docker_with_busybox 1
|
|
swarm_manage
|
|
|
|
run docker_swarm rmi bus
|
|
[ "$status" -ne 0 ]
|
|
[[ "${output}" == *"No such image"* ]]
|
|
}
|
|
|
|
@test "docker rmi without tag" {
|
|
start_docker_with_busybox 1
|
|
start_docker 1
|
|
|
|
docker -H ${HOSTS[0]} tag busybox:latest testimage:latest
|
|
swarm_manage
|
|
|
|
run docker_swarm images
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"busybox"* ]]
|
|
[[ "${output}" == *"testimage"* ]]
|
|
|
|
run docker_swarm rmi testimage
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"Untagged"* ]]
|
|
|
|
run docker_swarm images
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"busybox"* ]]
|
|
[[ "${output}" != *"testimage"* ]]
|
|
}
|
|
|
|
@test "docker rmi --force" {
|
|
start_docker_with_busybox 1
|
|
start_docker 1
|
|
|
|
swarm_manage
|
|
|
|
# make sure same image id have two repo-tags
|
|
docker_swarm tag busybox:latest testimage:latest
|
|
|
|
run docker_swarm images
|
|
[[ "${output}" == *"busybox"* ]]
|
|
[[ "${output}" == *"testimage"* ]]
|
|
|
|
# get busybox image id
|
|
busybox_id=`docker_swarm inspect --format='{{.Id}}' busybox:latest`
|
|
|
|
# test rmi with force
|
|
docker_swarm rmi -f ${busybox_id}
|
|
|
|
run docker_swarm images
|
|
[[ "${output}" != *"busybox"* ]]
|
|
[[ "${output}" != *"testimage"* ]]
|
|
}
|
|
|
|
@test "docker rmi with image digest" {
|
|
start_docker 2
|
|
swarm_manage
|
|
|
|
# make sure no image exists
|
|
run docker_swarm images -q
|
|
[ "$status" -eq 0 ]
|
|
[ "${#lines[@]}" -eq 0 ]
|
|
|
|
docker_swarm pull jimmyxian/busybox@sha256:649374debd26307573564fcf9748d39db33ef61fbf88ee84c3af10fd7e08765d
|
|
|
|
run docker_swarm images --digests
|
|
[ "$status" -eq 0 ]
|
|
[[ "${output}" == *"sha256:649374debd26307573564fcf9748d39db33ef61fbf88ee84c3af10fd7e08765d"* ]]
|
|
|
|
docker_swarm rmi jimmyxian/busybox@sha256:649374debd26307573564fcf9748d39db33ef61fbf88ee84c3af10fd7e08765d
|
|
|
|
run docker_swarm images --digests
|
|
[[ "${output}" != *"busybox"* ]]
|
|
[[ "${output}" != *"sha256:649374debd26307573564fcf9748d39db33ef61fbf88ee84c3af10fd7e08765d"* ]]
|
|
}
|
|
|
|
@test "docker rmi --force with image tag" {
|
|
start_docker_with_busybox 1
|
|
start_docker 1
|
|
|
|
swarm_manage
|
|
|
|
# make sure same image id have two repo-tags
|
|
docker_swarm tag busybox:latest testimage:tag1
|
|
docker_swarm tag busybox:latest testimage:tag2
|
|
|
|
run docker_swarm images
|
|
[[ "${output}" == *"busybox"* ]]
|
|
[[ "${output}" == *"testimage"* ]]
|
|
[[ "${output}" == *"tag1"* ]]
|
|
[[ "${output}" == *"tag2"* ]]
|
|
|
|
# test rmi with force
|
|
docker_swarm rmi -f testimage:tag1
|
|
|
|
# testimage:tag1 should be removed, testimage:tag2 should not
|
|
run docker_swarm images
|
|
[[ "${output}" == *"busybox"* ]]
|
|
[[ "${output}" == *"testimage"* ]]
|
|
[[ "${output}" != *"tag1"* ]]
|
|
[[ "${output}" == *"tag2"* ]]
|
|
}
|