云计算day33

在Docker file中定义所需要执⾏的指令,使⽤ docker build创建镜
像,过程中会按照dockerfile所定义的内容进⾏打开临时性容器,把
docker file中命令全部执⾏完成,就得到了⼀个容器应⽤镜像,每
⼀⾏命令都会出现容器,都会使⽤docker commit进⾏提交⼀个临
时性的镜像
注意执⾏的命令越多,镜像体积越⼤,所以需要优化镜像
Docker file关键字
1.FORM 指定基础镜像为该镜像的最后修改版本
2.FROM <image :tag>指定基础镜像为该镜像的⼀个tag版本
3.MAINTAINER
指定镜像创建者,企业内部不⽤指定,对外发
布也可以不指定
3.RUN 运⾏命令,安装软件
4.CMD 设置container启动时进⾏的操作,如果容器镜像中有这
个命名,启动容器时,不要⼿动让容器执⾏其他命令
5.ENTRYPORINT(⼊⼝点)cmd每次只能执⾏⼀个指令,
entrypoint可以多⾏执⾏。6.USER设置容器进程的⼀些⽤户
7.EXPOSE 暴露端⼝ 指定容器需要映射到宿主机的端⼝
8.ENV
设置环境变量 -e
9.ADD 从宿主机src复制⽂件到容器的dest路径
10.volumn 指定挂载点
11.WROKDIR 切换⽬录
12.ONBUILD在⼦镜像中执⾏指令
通过dockerfile创建⼀个在启动容器时,就可以启动httpd服务的镜

步骤

  1. 创建⼀个⽬录,⽤于存储Docker file所使⽤的⽂件
  2. 在此⽬录中创建Docker file⽂件,以及镜像制作所使⽤的⽂
  3. 使⽤docker build创建镜像
  4. 使⽤创建的镜像启动容器(验证)
    思考
  5. 基础镜像
  6. yum -y install httpd
  7. 使⽤脚本启动服务(httpd -k start)
  8. 应该将httpd服务放在前端执⾏
  9. 暴露端⼝ 80/tcp
  10. 添加⼀个测试⽂件,⽤于验证软件是否可⽤
    过程

1.创建⽬录

root@docker001 \~\]# mkdir test # 2.跳转到⽬录中\[root@docker001 \~\]# cd test/ # 3.编辑启动脚本 \[root@docker001 test\]# vim start.sh \[root@docker001 test\]# cat start.sh ###################################### #!/bin/bah rm -rf /run/httpd/\* exec /sbin/httpd -D FOREGROUND ###################################### # 4.编辑index.html⽂件 \[root@docker001 test\]# vim index.html # 5.编辑Dockerfile \[root@docker001 test\]# vim Dockerfile #################################### FROM centos_yum:v0 MAINTAINER "httpd server start 15773141955@163.com" RUN yum clean all RUN yum makecacheRUN yum -y install httpd ADD start.sh /start.sh RUN chmod -v +x /start.sh Add index.html /var/www/html/ EXPOSE 80 WORKDIR / CMD \["/bin/bash","/start.sh"

####################################

6.创建镜像

root@docker001 test\]# docker build -t centos:httpd . \[+\] Building 51.6s (12/12) FINISHED docker:default=\> \[internal\] load build definition from Dockerfile 0.0s =\> =\> transferring dockerfile: 309B 0.0s =\> \[internal\] load metadata for docker.io/library/centos_yum:v0 0.0s =\> \[internal\] load .dockerignore 0.0s =\> =\> transferring context: 2B 0.0s =\> \[1/8\] FROM docker.io/library/centos_yum:v0 0.0s =\> \[internal\] load build context 0.0s =\> =\> transferring context: 180B 0.0s =\> \[2/8\] RUN YUM clean all 2.3s =\> \[3/8\] RUN YUM makecache 42.7s =\> \[4/8\] RUN YUM -y install httpd 5.8s =\> \[5/8\] ADD START.SH /START.SH 0.0s=\> \[6/8\] RUN CHMOD -v +x /start.sh 0.2s =\> \[7/8\] ADD INDEX.HTML /VAR/WWW/HTML/ 0.0s =\> exporting to image 0.5s =\> =\> exporting layers 0.4s =\> =\> writing image sha256:a488bc9f4cfb58a91baa57c2ab9faf615d457ff8714 e4e958e7220a253469ed 0.0s =\> =\> naming to docker.io/library/centos:httpd # 7.查看镜像 \[root@docker001 test\]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE centos httpd a488bc9f4cfb About a minute ago 352MB centos nginx 12fea1b890de 41 hours ago 366MB centos java17 b6bf774de7bb 41 hours ago 550MB centos_yum v0 191d9c84f461 2 days ago 260MBmysql latest a82a8f162e18 4 weeks ago 586MB # 9.创建容器测试 \[root@docker001 test\]# docker run -d --name c0 centos:httpd c245d9f9f3e0d6526d80e117ebd7b4c2870a1e12558192f1da 1e681cabdc4e87 \[root@docker001 test\]# docker ps --all CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c245d9f9f3e0 centos:httpd "/bin/bash /start.sh" 21 seconds ago Up 20 seconds 80/tcp c0 # 10.查看ip地址 \[root@docker001 test\]# docker inspect c0 # 访问测试 \[root@docker001 test\]# curl 172.17.0.2 p pp ppp pppp ppppppppppp ppppppp pppppppp 测试挂载其他项⽬ \[root@docker001 test\]# docker run -d -v /opt:/var/www/html --name c1 centos:httpd 3c97af2d11a56b9c2f2ea4eb6bb0a7ff18d6f26d0f777f68a4 eb4a20b9c61835 \[root@docker001 test\]# eche "adsfadfafwqrdfqdsafdgdfsgda" \> /opt/index.html -bash: eche: 未找到命令 \[root@docker001 test\]# echo "adsfadfafwqrdfqdsafdgdfsgda" \> /opt/index.html \[root@docker001 test\]# curl 172.17.0.3 adsfadfafwqrdfqdsafdgdfsgda yum -y install yum-plugin-ovl练习 配置nginx应⽤镜像 FROM centos:latest MAINTAINER "NGINX" RUN rm -rf /etc/yum.repos.d/\* RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault- 8.5.2111.repo RUN yum clean all \&\& yum makecache RUN yum -y install epel-release \&\& yum -y install nginx RUN echo "daemon off;" \>\> /etc/nginx/nginx.conf WORKDIR / CMD /usr/sbin/nginx\[root@docker001 \~\]# docker run -d --name c1 - p80:80 -v /opt/:/usr/share/nginx/html/ centos:nginx 948f20e1ed4758e78759de8f9ce9b34a7f44c431bc8ead75b6 70e1a5b488654c \[root@docker001 \~\]# docker info Client: Docker Engine - Community Version: 26.1.4 Context: default Debug Mode: false Plugins: buildx: Docker Buildx (Docker Inc.) Version: v0.14.1 Path: /usr/libexec/docker/cli plugins/docker-buildx compose: Docker Compose (Docker Inc.) Version: v2.27.1 Path: /usr/libexec/docker/cli plugins/docker-composeServer: Containers: 2 #容器数量 Running: 2 #正在运⾏的容器 Paused: 0 Stopped: 0 Images: 3 Server Version: 26.1.4 Storage Driver: overlay2 # 存储驱动 Backing Filesystem: xfs Supports d_type: true Using metacopy: false Native Overlay Diff: true userxattr: false Logging Driver: json-file Cgroup Driver: cgroupfs Cgroup Version: 1 Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json file local splunk syslog Swarm: inactive Runtimes: io.containerd.runc.v2 runc Default Runtime: runc Init Binary: docker-init containerd version: d2d58213f83a351ca8f528a95fbd145f5654e957 runc version: v1.1.12-0-g51d5e94 init version: de40ad0 Security Options: seccomp Profile: builtin Kernel Version: 3.10.0-1160.119.1.el7.x86_64 Operating System: CentOS Linux 7 (Core) OSType: linux Architecture: x86_64 CPUs: 1 Total Memory: 972.1MiB Name: docker001.yuanyu.zhangmin ID: 7684bd62-67f2-48c8-a2ee-daaa649abf70 Docker Root Dir: /var/lib/docker Debug Mode: false Experimental: false Insecure Registries: 127.0.0.0/8 Registry Mirrors: https://do.nark.eu.org/ https://dc.j8.work/ https://docker.m.daocloud.io/ https://dockerproxy.com/ https://docker.mirrors.ustc.edu.cn/ https://docker.nju.edu.cn/ Live Restore Enabled: false \[DEPRECATION NOTICE\]: API is accessible on http://0.0.0.0:2375 without encryption. Access to the remote API is equivalent to root access on the host. Refer to the 'Docker daemon attack surface' section in the documentation for more information: https://docs.docker.com/go/attack-surface/ In future versions this will be a hard failure preventing the daemon from starting! Learn more at: https://docs.docker.com/go/api-security/ WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled \[root@docker001 \~\]# ls /var/lib/docker/buildkit containers engine-id image network overlay2 plugins runtimes swarm tmp volumes \[root@docker001 \~\]# tree -L 2 /var/lib/docker/ /var/lib/docker/ "## buildkit $ "## cache.db $ "## containerdmeta.db $ "## content $ "## executor $ "## history.db $ "## metadata_v2.db $ "## net $ %## snapshots.db "## containers $ "## 5ce068ef110b103c565602dcc7c4af66f91cd2b6ea8129af7a be5383c4aa0f8d $ %## 948f20e1ed4758e78759de8f9ce9b34a7f44c431bc8ead75b6 70e1a5b488654c "## engine-id "## image $ %## overlay2 "## network $ %## files "## overlay2$ "## 0471ada2dce770506dd29557cd04ce8ee3f4a632a81f482ce0 e2b139d8251611 $ "## 109e3f2004911eabcd6934be32281c1ed9897b46de48a8960d 1253a668145126 $ "## 117fd8ba9ff0ed91d48cff774a1061baf9efe6fe4d63cdb14e 768bfd742a3f3b $ "## 235zotit1cskmcglyr9nykhou $ "## 2q24gwawlr1jvee48x9zrqxai $ "## 332fbcc4b5175a6970ca7788db3898f9102f84f6a68029f57f ccfbe2a3408729 $ "## 332fbcc4b5175a6970ca7788db3898f9102f84f6a68029f57f ccfbe2a3408729-init $ "## 3y08ei53ildl077di6t0xhvt4 $ "## 4e699a81c9752aa0e2182cb302c11af1f39093ee81f2c7cf1a 9ef7189feee839 $ "## 4e699a81c9752aa0e2182cb302c11af1f39093ee81f2c7cf1a 9ef7189feee839-init$ "## 561bbad3be962475eff729aa3d5240eb213176bae772cfe4e5 d45f22b123fb7a $ "## 561bbad3be962475eff729aa3d5240eb213176bae772cfe4e5 d45f22b123fb7a-init $ "## 56b9d2c60d83b8e72cd15975c63ebfbdd3e6055d49b3d739d7 5a1ff94e277dda $ "## 6564c73ad543b723881b076fe387422b191cd48158811ce89b aaa6406b284df4 $ "## 7711d9a14b6fc142ef00c96d7d9140628b60d01f00f253e584 80e4088b5434a4 $ "## 7a9653ab64da80a7fd2ffdb6cbac391b298c9df892db50d053 9f35682379023c $ "## 8703d4e4fb30097919c7e5983aec21c548b188a3a4bee865dd 5043b948fe5c2d $ "## 89bb8ec84e2069acba669fecb7ef2500a054652586c80e2e94 7173b5b369a834$ "## a0f5901965932b6db0ec37cd31654532e08cac14e0b12b1897 090cdef1ed9a3d $ "## a0f5901965932b6db0ec37cd31654532e08cac14e0b12b1897 090cdef1ed9a3d-init $ "## a63d730255cb91be82e6c51cc677717728b45f4032e4e5e48b 0e2a9e5aa2deab $ "## a63d730255cb91be82e6c51cc677717728b45f4032e4e5e48b 0e2a9e5aa2deab-init $ "## ah3i2ooqroom29dxbl7tfn7qq $ "## backingFsBlockDev $ "## c8ee533075c8244596da864a555935839a9850b450b6687201 80802707a9a146 $ "## c8ee533075c8244596da864a555935839a9850b450b6687201 80802707a9a146-init $ "## cca21d9c366100f059609ce466a8ffdd5e820407d89c1e89b2 154e0573b04b67 $ "## e2bc5e84f80761a20c10b0d7a914141e912f63ed79266ef381 290c424bf40b1d$ "## el3ttxid0yg954kt85y798vze $ "## f77539952d704ff61e8983dd2db9e7998503d1e98ad3df4db9 bed32a7fd50903 $ "## gf94ym4xk3ow1tk39dihylvyd $ "## hp0h9kwz0lhzvp1vitb7luhy3 $ "## kfjteefzg4mrc7959nj2au3le $ "## kkg0d8n5rg51yksgbm2xxw8ou $ "## l $ "## mwd5hxe90l7liljg8pkaam3r6 $ "## nbxfcewpnxawtj825cu3xw3ph $ "## ngvvz7u0xe1xgs82c1h0qspcm $ "## on9ypo393wf86a8b1kuawmsez $ "## pc9zeyl68k1ju2xvdiuv5sihd $ "## phy7f7a1llvm8rsn7auwsj6iw $ "## pi9f4xmuk60u70onzmz1q4r9c $ "## pqyc1rcou6ddvbnygkrs68c3l $ "## q09bzwofod6zhhhpttb9tpmbz $ "## qazjj8ki0z9q206jga0sii0ru $ "## sroxs9tw339wyo94pwle3llym $ "## w09y9n8pqbfexzhk4ut61ktma $ "## whbqjbm3dp1wrxtblscir4ywr $ %## z5yoracg29fmorw6e99o4qshv "## plugins $ "## storage $ %## tmp"## runtimes "## swarm "## tmp %## volumes "## 1652bd379334d5a944d0b40dde7b0fe944e3c043dc850ec171 8ccc9f52e31872 "## backingFsBlockDev "## c2dbff511839eeb4a788c15fc2414b826b89222555d27070ea 65467cb1ac26e1 %## metadata.db 69 directories, 9 files查看系统内核 \[root@docker001 l\]# uname -r 3.10.0-1160.119.1.el7.x86_64 查看⽂件系统 \[root@docker001 l\]# df -i ⽂件系统 Inode 已⽤(I) 可⽤(I) 已⽤ (I)% 挂载点 devtmpfs 121445 390 121055 1% /dev tmpfs 124432 1 124431 1% /dev/shmtmpfs 124432 794 123638 1% /run tmpfs 124432 16 124416 1% /sys/fs/cgroup /dev/mapper/centos-root 8910848 101057 8809791 2% / /dev/sda1 524288 333 523955 1% /boot tmpfs 124432 1 124431 1% /run/user/0 overlay 8910848 101057 8809791 2% /var/lib/docker/overlay2/a0f5901965932b6db0ec37cd3 1654532e08cac14e0b12b1897090cdef1ed9a3d/merged overlay 8910848 101057 8809791 2% /var/lib/docker/overlay2/c8ee533075c8244596da864a5 55935839a9850b450b668720180802707a9a146/merged 新建⼀个⽂件之后 可⽤的节点减少⼀个 \[root@docker001 \~\]# touch 123.txt \[root@docker001 \~\]# df -i ⽂件系统 Inode 已⽤(I) 可⽤(I) 已⽤ (I)% 挂载点devtmpfs 121445 390 121055 1% /dev tmpfs 124432 1 124431 1% /dev/shm tmpfs 124432 794 123638 1% /run tmpfs 124432 16 124416 1% /sys/fs/cgroup /dev/mapper/centos-root 8910848 101058 8809790 2% / /dev/sda1 524288 333 523955 1% /boot tmpfs 124432 1 124431 1% /run/user/0 overlay 8910848 101058 8809790 2% /var/lib/docker/overlay2/a0f5901965932b6db0ec37cd3 1654532e08cac14e0b12b1897090cdef1ed9a3d/merged overlay 8910848 101058 8809790 2% /var/lib/docker/overlay2/c8ee533075c8244596da864a5 55935839a9850b450b668720180802707a9a146/merged 创建软连接之后,节点减少⼀个\[root@docker001 \~\]# ln -s 123.txt 123.lk \[root@docker001 \~\]# df -i ⽂件系统 Inode 已⽤(I) 可⽤(I) 已⽤ (I)% 挂载点 devtmpfs 121445 390 121055 1% /dev tmpfs 124432 1 124431 1% /dev/shm tmpfs 124432 794 123638 1% /run tmpfs 124432 16 124416 1% /sys/fs/cgroup /dev/mapper/centos-root 8910848 101059 8809789 2% / /dev/sda1 524288 333 523955 1% /boot tmpfs 124432 1 124431 1% /run/user/0 overlay 8910848 101059 8809789 2% /var/lib/docker/overlay2/a0f5901965932b6db0ec37cd3 1654532e08cac14e0b12b1897090cdef1ed9a3d/merged overlay 8910848 101059 8809789 2% /var/lib/docker/overlay2/c8ee533075c8244596da864a5 55935839a9850b450b668720180802707a9a146/merged在启动docker服务后会新建/var/lib/docker \[root@docker001 \~\]# ls /var/lib/docker ls: ⽆法访问/var/lib/docker: 没有那个⽂件或⽬录 \[root@docker001 \~\]# systemctl start docker.service \[root@docker001 \~\]# ls /var/lib/docker buildkit containers engine-id image network overlay2 plugins runtimes swarm tmp volumes \[root@docker001 \~\]# ls /var/lib/docker/overlay2/ backingFsBlockDev l 拉取⼀个新镜像之后,就会在overlay2⽂件夹中保存新的⽂件\[root@docker001 \~\]# docker pull centos Using default tag: latest latest: Pulling from library/centos a1d0c7532777: Pull complete Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534b bdee55bd6c473f432b177 Status: Downloaded newer image for centos:latest docker.io/library/centos:latest \[root@docker001 \~\]# ls /var/lib/docker/overlay2/ backingFsBlockDev ce54a04e45edb448429f2f7adb8a8a1d23379e300f8e7c1a98 beb4512d932c34 l \[root@docker001 \~\]# 查看⽂件保存位置\[root@docker001 \~\]# cd /var/lib/docker/overlay2/ce54a04e45edb448429f2f7ad b8a8a1d23379e300f8e7c1a98beb4512d932c34/ \[root@docker001 ce54a04e45edb448429f2f7adb8a8a1d23379e300f8e7c1a98 beb4512d932c34\]# ls diff link \[root@docker001 ce54a04e45edb448429f2f7adb8a8a1d23379e300f8e7c1a98 beb4512d932c34\]# ls diff/ bin etc lib lost+found mnt proc run srv tmp var dev home lib64 media opt root sbin sys usr \[root@docker001 ce54a04e45edb448429f2f7adb8a8a1d23379e300f8e7c1a98 beb4512d932c34\]# 创建容器后出现2个新的⽂件夹\[root@docker001 \~\]# docker run -it --name c0 centos:latest /bin/bash \[root@4c7f96d1a03e /\]# \[root@docker001 \~\]# \[root@docker001 \~\]# ls /var/lib/docker/overlay2/ backingFsBlockDev ce54a04e45edb448429f2f7adb8a8a1d23379e300f8e7c1a98 beb4512d932c34 e291e027242e013f682fe631b83e89a90f9ba68fa1af92fda2 fe4d9094f7b7eb e291e027242e013f682fe631b83e89a90f9ba68fa1af92fda2 fe4d9094f7b7eb-init 查看容器⽬录\[root@docker001 \~\]# cd /var/lib/docker/overlay2/e291e027242e013f682fe631b 83e89a90f9ba68fa1af92fda2fe4d9094f7b7eb \[root@docker001 e291e027242e013f682fe631b83e89a90f9ba68fa1af92fda2 fe4d9094f7b7eb\]# ls diff link lower merged work \[root@docker001 e291e027242e013f682fe631b83e89a90f9ba68fa1af92fda2 fe4d9094f7b7eb\]# cat lower l/LBSEYI2LHNHNIYE7AYQMOC6RBP:l/KQTNFI7JQXIRWB3PFKE D2HRWJD\[root@docker001 e291e027242e013f682fe631b83e89a90f9ba68fa1af92fda2 fe4d9094f7b7eb\]# ls merged/ bin etc lib lost+found mnt proc run srv tmp var dev home lib64 media opt root sbin sys usr \[root@docker001 e291e027242e013f682fe631b83e89a90f9ba68fa1af92fda2 fe4d9094f7b7eb\]# 在外⾯使⽤exec创建⼀个⽂件\[root@docker001 \~\]# docker exec 4c7f dd if=/dev/zero of=/test bs=10M count=100 100+0 records in 100+0 records out 1048576000 bytes (1.0 GB, 1000 MiB) copied, 2.7744 s, 378 MB/s \[root@docker001 \~\]# ls /var/lib/docker/overlay2/e291e027242e013f682fe631b 83e89a90f9ba68fa1af92fda2fe4d9094f7b7eb/merged/ bin etc lib lost+found mnt proc run srv test usr dev home lib64 media opt root sbin sys tmp var 容器保存镜像和数据 查看容器挂载 容器被移除以后,这个⽂件就会被删除,stop不会删除 \[root@docker001 \~\]# ls /var/lib/docker/overlay2/ backingFsBlockDevce54a04e45edb448429f2f7adb8a8a1d23379e300f8e7c1a98 beb4512d932c34 e291e027242e013f682fe631b83e89a90f9ba68fa1af92fda2 fe4d9094f7b7eb e291e027242e013f682fe631b83e89a90f9ba68fa1af92fda2 fe4d9094f7b7eb-init l \[root@docker001 \~\]# docker stop c0 c0 \[root@docker001 \~\]# ls /var/lib/docker/overlay2/ backingFsBlockDev ce54a04e45edb448429f2f7adb8a8a1d23379e300f8e7c1a98 beb4512d932c34 e291e027242e013f682fe631b83e89a90f9ba68fa1af92fda2 fe4d9094f7b7eb e291e027242e013f682fe631b83e89a90f9ba68fa1af92fda2 fe4d9094f7b7eb-init l \[root@docker001 \~\]# docker rm c0 c0 \[root@docker001 \~\]# ls /var/lib/docker/overlay2/ backingFsBlockDev ce54a04e45edb448429f2f7adb8a8a1d23379e300f8e7c1a98 beb4512d932c34 l \[root@docker001 \~\]# 创建私有仓库,在企业中分享项⽬ # 安装仓库镜像 \[root@docker001 \~\]# docker pull registry Using default tag: latest latest: Pulling from library/registry 930bdd4d222e: Pull complete a15309931e05: Pull complete 6263fb9c821f: Pull complete 86c1d3af3872: Pull complete a37b1bf6a96f: Pull complete Digest: sha256:12120425f07de11a1b899e418d4b0ea174c8d4d572d 45bdb640f93bc7ca06a3d Status: Downloaded newer image for registry:latest docker.io/library/registry:latest #查看新安装的镜像 \[root@docker001 \~\]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry latest cfb4d9904335 10 months ago 25.4MB centos latest 5d0da3dc9764 2 years ago 231MB# 创建挂载的⽬录 \[root@docker001 \~\]# mkdir /opt/dockeregistry # 创建容器,映射端⼝,挂载⽂件 \[root@docker001 \~\]# docker run -d --name c1 - p5000:5000 -v /opt/dockeregistry/:/var/lib/registry registry:latest 7ec28de22490aee02bd542ef22076f8ba746f7513cf96bf501 d817bc07b38f27 \[root@docker001 \~\]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7ec28de22490 registry:latest "/entrypoint.sh /etc..." 13 seconds ago Up 12 seconds 0.0.0.0:5000-\>5000/tcp, :::5000-\>5000/tcp c1 # 访问⽬录⻚ \[root@docker001 \~\]# curl http://10.1.1.50:5000/v2/_catalog {"repositories":\[\]} # 创建仓库\[root@docker001 \~\]# vim /etc/docker/daemon.json \[root@docker001 \~\]# cat /etc/docker/daemon.json { "insecure-registries":\[ "http://10.1.1.50:5000" \], "registry-mirrors": \[ "https://do.nark.eu.org", "https://dc.j8.work", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" \], "hosts": \[ "tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"

}

重启docker服务[root@docker001 ~]# systemctl restart

docker.service

查看镜像

root@docker001 \~\]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry latest cfb4d9904335 10 months ago 25.4MB centos latest 5d0da3dc9764 2 years ago 231MB # 为要上传的镜像添加标记 \[root@docker001 \~\]# docker tag centos:latest 10.1.1.50:5000/centos:v0 \[root@docker001 \~\]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry latest cfb4d9904335 10 months ago 25.4MB 10.1.1.50:5000/centos v0 5d0da3dc9764 2 years ago 231MB centos latest 5d0da3dc9764 2 years ago 231MB10.1.1.50/centos v0 5d0da3dc9764 2 years ago 231MB \[root@docker001 \~\]# docker push 10.1.1.50:5000/centos:v0 The push refers to repository \[10.1.1.50:5000/centos

Get "http://10.1.1.50:5000/v2/": dial tcp
10.1.1.50:5000: connect: connection refused

root@docker001 \~\]# docker start c1 c1 \[root@docker001 \~\]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7ec28de22490 registry:latest "/entrypoint.sh /etc..." 16 minutes ago Up 4 seconds 0.0.0.0:5000-\>5000/tcp, :::5000-\>5000/tcp c1 \[root@docker001 \~\]# docker push 10.1.1.50:5000/centos:v0 The push refers to repository \[10.1.1.50:5000/centos

74ddd0ec08fa: Pushed
v0: digest:
sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c8386
3037fa3aab063a7fdb9dc size: 529

root@docker001 \~\]# ls /opt/1.png assets dist index.html 2.png containerd dockeregistry nohup.out application.properties cvloume favicon.ico Project_ExamSystem-V1.0.0.war \[root@docker001 \~\]# ls /opt/dockeregistry/ docker \[root@docker001 \~\]# ls /opt/dockeregistry/docker/ registry \[root@docker001 \~\]# ls /opt/dockeregistry/docker/registry/ v2 \[root@docker001 \~\]# ls /opt/dockeregistry/docker/registry/v2/ blobs repositories \[root@docker001 \~\]# ls /opt/dockeregistry/docker/registry/v2/repositories / centos \[root@docker001 \~\]#1.拉取registry docker pull registry 2.创建挂载⽬录 mkdir /regist 3.启动容器,映射端⼝,挂载⽬录 docker run -d --name c0 -v /regist/:/var/lib/rigistry/ -p5000:5000 registry:latest 4.访问仓库 curl http://192.168.71.50:5000/v2/_catelog 5.配置pull和push,修改daemon.jsonvim /etc/docker/daemon.json { ....., "insecure-registries":\[ "http://192.168.71.50:5000"

}
:wq
6.修改了配置⽂件,重启docker服务
systemctl restart docker
7.启动registry容器
docker start r1
curl localhost:5000/v2/_catalog

相关推荐
wanhengidc1 小时前
在线服务器的应用场景都有哪些?
运维·服务器·科技·游戏·智能手机·云计算
翼龙云_cloud2 小时前
阿里云渠道商:轻量应用服务器连接常见问题与解决指南
服务器·阿里云·云计算
翼龙云_cloud3 小时前
亚马逊云渠道商:新手怎么利用AWS Lightsail部署 WordPress?
运维·服务器·云计算·aws
VermiliEiz3 小时前
使用二进制文件方式部署kubernetes(1)
kubernetes·云计算
捷智算云服务4 小时前
A100云主机租赁价格贵吗?具体费用是多少?
服务器·人工智能·云计算·gpu算力
The star"'5 小时前
ELK企业日志分析系统
运维·elk·云计算
iReachers5 小时前
极速AI助手如何使用免费的阿里云的大模型
人工智能·阿里云·云计算
Serverless 社区5 小时前
阿里云 Serverless 计算 11 月产品动态
阿里云·serverless·云计算
TG:@yunlaoda360 云老大5 小时前
如何了解腾讯云国际站代理商CSS的服务流程是怎样的?
css·云计算·腾讯云
gaize12136 小时前
火山云与腾讯云价格及机型分析
服务器·云计算