Centos7 docker build private repository registry
Environment Planning:
Docker private repository address: 192.168.0.167
Docker client address: 192.168.0.167
· Disable firewall and selinux
systemctlstopfirewalld.service
systemctldisablefirewalld.service
#vi/etc/sysconfig/selinux
SELINUX=disabled
#setenforce0
Server
1. Install and start docker
yum-yinstalldocker
servicedockerstart
chkconfigdockeron
2. Pull the local private repository registry
[root@localhost~]#dockerpullregistry
Tryingtopullrepositorydocker.io/registry...
24dd746e9b9f:Downloadcomplete
706766fe1019:Downloadcomplete
a62a42e77c9c:Downloadcomplete
2c014f14d3d9:Downloadcomplete
b7cf8f0d9e82:Downloadcomplete
d0b170ebeeab:Downloadcomplete
171efc310edf:Downloadcomplete
522ed614b07a:Downloadcomplete
605ed9113b86:Downloadcomplete
22b93b23ebb9:Downloadcomplete
2ac557a88fda:Downloadcomplete
1f3b4c532640:Downloadcomplete
27ebaac643a7:Downloadcomplete
ce630195cb45:Downloadcomplete
Status:Downloadednewerimage
for
docker.io/registry:latest
3. view the registry Image
[root@localhost~]#dockerimages
docker.io/busyboxlatest0064fda8c45d5daysago1.113MB
docker.io/registrylatest105c6c9299d95daysago423.3MB
docker.io/centoslatestce20c473cd8a6daysago172.3MB
4. Run containers based on private repository Images
By default, the repository is stored in the/tmp/registry directory of the container. If the container is deleted, the image stored in the container will also be lost, therefore, we usually specify a local directory to be mounted to the/tmp/registry directory of the container!
· The default storage path of registry is/tmp/registry, which is only a temporary directory and will disappear after a period of time
· Use the-v parameter to specify a local persistent path,
[root@localhost~]#dockerrun-d-p5000:5000-v/opt/data/registry:/tmp/registrydocker.io/registry
bb2c0d442df94e281479332c2608ef144f378e71743c5410e36b80c465771a95
root@localhost~]#dockerps-a
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
bb2c0d442df9docker.io/registry:latest
"docker-registry"
10secondsagoUp7seconds
5. Access a private Repository
[root@localhost~]#curl127.0.0.1:5000/v1/search
{
"num_results"
:0,
"query"
:
""
,
"results"
: []} # The Private repository is empty. No new image is submitted to the repository.
6. Pull an image from Docker HUB to test
[root@localhost~]#dockerpullbusybox
[root@localhost~]#dockerimages
REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE
docker.io/busyboxlatest0064fda8c45d5daysago1.113MB
docker.io/registrylatest105c6c9299d95daysago423.3MB
docker.io/centoslatestce20c473cd8a6daysago172.3MB
7. Create an image link to tag the basic image
[root@localhost~]#dockertagdocker.io/busybox192.168.0.167:5000/busybox
[root@localhost~]#dockerimages
REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE
192.168.0.167:5000/busyboxlatest0064fda8c45d5daysago1.113MB
docker.io/busyboxlatest0064fda8c45d5daysago1.113MB
docker.io/registrylatest105c6c9299d95daysago423.3MB
docker.io/centoslatestce20c473cd8a6daysago172.3MB
8. Modify the docker configuration file and specify the private repository url
[root@localhost~]#vim/etc/sysconfig/docker
Modify this line
OPTIONS=
'--insecure-registry192.168.0.167:5000'
[root@localhost~]#servicedockerrestart
9. Upload the image to a local private Repository
dockerpush192.168.0.167:5000/busybox
10. Check whether the private repository has the corresponding image
[root@localhost~]#curl192.168.0.167:5000/v1/search
{
"num_results"
:1,
"query"
:
""
,
"results"
:[{
"description"
:
""
,
"name"
:
"library/busybox"
}]}
11. view the storage directories and files of images
[root@localhost~]#tree/opt/data/registry/repositories/
/opt/data/registry/repositories/
└──library
└──ssh
├──_index_images
├──json
├──tag_latest
└──taglatest_json
2directories,4files
Client
1. Install and start docker
yum-yinstalldocker
servicedockerstart
chkconfigdockeron
2. Modify the docker configuration file and specify the private repository url
[root@localhost~]#vim/etc/sysconfig/docker
Modify this line
OPTIONS=
'--insecure-registry192.168.0.167:5000'
[root@localhost~]#servicedockerrestart
3. Test and download the uploaded image.
[root@localhost~]#dockerpull192.168.0.167:5000/busybox
[root@localhost~]#dockerimages
REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE
192.168.0.167:5000/busyboxlatest0064fda8c45d5daysago1.113MB
docker.io/registrylatest105c6c9299d95daysago423.3MB
docker.io/centoslatestce20c473cd8a6daysago172.3MB
docker.io/atcol/docker-registry-uilatestd838355ad9036monthsago890.5MB