1CONTAINERS-TRANSPORTS(5)              Man             CONTAINERS-TRANSPORTS(5)
2
3
4
5Valentin Rothberg April 2019
6

NAME

8       containers-transports - description of supported transports for copying
9       and storing container images
10
11

DESCRIPTION

13       Tools which use  the  containers/image  library,  including  skopeo(1),
14       buildah(1),  podman(1), all share a common syntax for referring to con‐
15       tainer images in various locations.  The general form of the syntax  is
16       transport:details,  where details are dependent on the specified trans‐
17       port, which are documented below.
18
19
20   containers-storage:[[storage-specifier]]{image-id|docker-reference[@image-
21       id]}
22       An  image located in a local containers storage.  The format of docker-
23       reference is described in detail in the docker transport.
24
25
26       The storage-specifier allows for referencing storage locations  on  the
27       file  system  and  has  the format [[driver@]root[+run-root][:options]]
28       where the optional driver refers to the storage driver  (e.g.,  overlay
29       or  btrfs) and where root is an absolute path to the storage's root di‐
30       rectory.  The optional run-root can be used to specify the  run  direc‐
31       tory  of  the  storage  where all temporary writable content is stored.
32       The optional options are a comma-separated list of driver-specific  op‐
33       tions.  Please refer to containers-storage.conf(5) for further informa‐
34       tion on the drivers and supported options.
35
36
37   dir:path
38       An existing local directory path storing the manifest,  layer  tarballs
39       and signatures as individual files.  This is a non-standardized format,
40       primarily useful for debugging or noninvasive container inspection.
41
42
43   docker://docker-reference
44       An image in a registry implementing the "Docker Registry HTTP API  V2".
45       By  default,  uses the authorization state in $XDG_RUNTIME_DIR/contain‐
46       ers/auth.json, which is set using podman-login(1).  If  the  authoriza‐
47       tion  state  is  not found there, $HOME/.docker/config.json is checked,
48       which is set using docker-login(1).  The  containers-registries.conf(5)
49       further allows for configuring various settings of a registry.
50
51
52       Note  that  a docker-reference has the following format: name[:tag|@di‐
53       gest].  While the docker transport does not support both a  tag  and  a
54       digest  at  the same time some formats like containers-storage do.  Di‐
55       gests can also be used in an image destination as long as the  manifest
56       matches the provided digest.  The digest of images can be explored with
57       skopeo-inspect(1).  If name does not contain a slash, it is treated  as
58       docker.io/library/name.   Otherwise,  the  component  before  the first
59       slash is checked if it is recognized as  a  hostname[:port]  (i.e.,  it
60       contains either a . or a :, or the component is exactly localhost).  If
61       the first component of name is not  recognized  as  a  hostname[:port],
62       name is treated as docker.io/name.
63
64
65   docker-archive:path[:{docker-reference|@source-index}]
66       An image is stored in the docker-save(1) formatted file.  docker-refer‐
67       ence must not contain a digest.  Alternatively, for  reading  archives,
68       @source-index  is a zero-based index in archive manifest (to access un‐
69       tagged images).  If  neither  docker-reference  nor  @_source_index  is
70       specified when reading an archive, the archive must contain exactly one
71       image.
72
73
74       It is further possible to copy data to stdin by  specifying  docker-ar‐
75       chive:/dev/stdin but note that the used file must be seekable.
76
77
78   docker-daemon:docker-reference|algo:digest
79       An  image  stored  in  the docker daemon's internal storage.  The image
80       must be specified as a docker-reference or in an  alternative  algo:di‐
81       gest format when being used as an image source.  The algo:digest refers
82       to the image ID reported by docker-inspect(1).
83
84
85   oci:path[:reference]
86       An image compliant with the "Open Container Image Layout Specification"
87       at path.  Using a reference is optional and allows for storing multiple
88       images at the same path.
89
90
91   oci-archive:path[:reference]
92       An image compliant with the "Open Container Image Layout Specification"
93       stored as a tar(1) archive at path.
94
95
96   ostree:docker-reference[@/absolute/repo/path]
97       An  image  in  the local ostree(1) repository.  /absolute/repo/path de‐
98       faults to /ostree/repo.
99
100

Examples

102       The following examples demonstrate how some of  the  containers  trans‐
103       ports  can  be  used.  The examples use skopeo-copy(1) for copying con‐
104       tainer images.
105
106
107       Copying an image from one registry to another:
108
109
110              $ skopeo copy docker://docker.io/library/alpine:latest docker://localhost:5000/alpine:latest
111
112
113
114       Copying an image from a running Docker daemon to a directory in the OCI
115       layout:
116
117
118              $ mkdir alpine-oci
119              $ skopeo copy docker-daemon:alpine:latest oci:alpine-oci
120              $ tree alpine-oci
121              test-oci/
122              ├── blobs
123              │   └── sha256
124              │       ├── 83ef92b73cf4595aa7fe214ec6747228283d585f373d8f6bc08d66bebab531b7
125              │       ├── 9a6259e911dcd0a53535a25a9760ad8f2eded3528e0ad5604c4488624795cecc
126              │       └── ff8df268d29ccbe81cdf0a173076dcfbbea4bb2b6df1dd26766a73cb7b4ae6f7
127              ├── index.json
128              └── oci-layout
129
130              2 directories, 5 files
131
132
133
134       Copying an image from a registry to the local storage:
135
136
137              $ skopeo copy docker://docker.io/library/alpine:latest containers-storage:alpine:latest
138
139
140

SEE ALSO

142       docker-login(1),  docker-save(1),  ostree(1),  podman-login(1), skopeo-
143       copy(1), skopeo-inspect(1), tar(1), container-registries.conf(5),  con‐
144       tainers-storage.conf(5)
145
146

AUTHORS

148       Miloslav  Trmač mitr@redhat.com ⟨mailto:mitr@redhat.com⟩ Valentin Roth‐
149       berg rothberg@redhat.com ⟨mailto:rothberg@redhat.com⟩
150
151
152
153Transports                        Containers          CONTAINERS-TRANSPORTS(5)
Impressum