You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Swift requires xattr to be enabled. With the overlay2 storage driver, Docker
supports extended attributes. However, if you're using the older AUFS storage
driver, it isn't possible for Swift to use storage within the Docker image.
The workaround for this is to mount a volume from a filesystem where xattr is
enabled (e.g. ext4 or xfs).
If you'd like the data to be persistent, you should also store it in an external
volume.
You can pull the images from the DockerHub registry:
docker pull dockerswiftaio/docker-swift:latest
If you need a specific version of Swift, or would like to pin to a specific
version (recommended), you can pull the specific version like this:
docker pull dockerswiftaio/docker-swift:2.24.0
This works:
This uses Docker's storage:
docker pull dockerswiftaio/docker-swift
docker run -P -t dockerswiftaio/docker-swift
curl -v -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' https://127.0.0.1:<port>/auth/v1.0
curl -v -H 'X-Auth-Token: <token-from-x-auth-token-above>' <url-from-x-storage-url-above>
swift -A https://127.0.0.1:<port>/auth/v1.0 -U test:tester -K testing stat
To persist data, you can replace the docker run command with the following:
docker run -P -v /path/to/data:/swift/nodes/1/node/sdb1 -t dockerswiftaio/docker-swift
If you'd like to replace Swift configuration files, you can also bind mount
them. For example:
docker run -P -v /path/to/proxy-server.conf:/etc/swift/proxy-server.conf -t dockerswiftaio/docker-swift
Discover the port by running docker ps, which will give output like this:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8f892e66b517 dockerswiftaio/docker-swift:2.24.0 "/bin/bash /swift/bi…" 7 seconds ago Up 6 seconds 0.0.0.0:49177->8080/tcp magical_bhaskara
You want the port that is mapped to port 8080 within the Docker image, in this case 49176.
You can then run demo.sh, which will execute a series of curl commands to create
a container, list various information, put itself into Swift as object
"testcontainer/testobject", and retrieve itself again as "retrieved_demo.sh".
Notes
Uses supervisord to keep the image running. To get a shell on the container, you can use:
docker exec -it <container name> /bin/bash
Tail /var/log/syslog to see what it's doing.
Notes on changes from Swift-AIO instructions
user and group ids are swift:swift
the instructions provide for using a separate partition or a loopback for
storage, presumably to allow the storage capacity to be strictly limited.
Neither of these was easy for a Docker n00b to implement, so I've just used
/swift, with symbolic links in /srv. The storage can be limited at the OS
level in the Docker image if it's a concern.
the Github sources are cloned to /usr/local/src
License
Copyright (C) 2015 NVIDIA CORPORATION
Copyright (C) 2015-2019 Bounce Storage
Copyright (C) 2013-2015 Peter Binkley @pbinkley
Licensed under the GNU General Public License, Version 2.0