Docker本地仓库简单使用

2023年 7月 16日 114.0k 0

docker镜像和容器常用命令

docker镜像命令

获取镜像:docker pull centos查看镜像:docker images查看镜像详细信息:docker inspect [NAME:tag] 搜索镜像:docker search [NAME:tag] 删除镜像:docker rmi [NAME:tag&ID] ​ -f:强制删除创建镜像:docker commit 导入镜像:cat 镜像.tar |docker import - centos:7存出镜像:docker save -o centos:7.tar centos7载入镜像:docker load --imput cnetos7.tar​ 或者:docker load < centos7.tar上传镜像:docker push 添加标签后在上传,如下:​ docer tag centos:7 mark/centos:7​ docker push mark/centos:7

docker容器命令

新建容器:docker create -it centos:tag启动容器:docker start NAME创建并后台启动:docker run --name mynginx -d nginx-d 守护进程模式创建启动并连接容器并启动一个bash终端:docker run -it mynginx /bin/bash当docker run来创建并启动容器时,Docker在后台运行操作包括:1,检查本地是否存在指定镜像,不存在则从共有仓库下载2,利用镜像创建并启动一个容器3,分配一个文件系统,并在只读的镜像层外挂载一层可读写层4,从宿主机配置的网桥借口中桥接一个虚拟借口到容器中5,从地址池分配一个ip地址给容器6,执行用户指定的应用程序7,执行完毕后终止其中-t选项让docker分配一个伪终端并绑定到容器的标准输出上,-i则让容器的标准输入保持打开查看容器:docker ps -a关闭容器: docker stop NAMEdocker stop它首先会向容器发送一个SIGTERM信号,等一段时间后,默认10秒后,在发送SIGKILL来终止rongqi启动容器:docker start NAME强行终止:docker kill ID进入容器运行命令:docker exec -it ID /bin/bahs当然,也可以不进入容器运行命令:docker exec NAME ps

删除容器:docker rm ID删除运行中的容器:docker rm -f ID导出容器:docker export ID > name.tar导入容器:cat name.tar | docker import - test/centos:7

创建和使用本地私有仓库:

1,下载安装registry

我们通过官方提供的registry镜像来简单搭建本地的私有仓库环境docker run -d -p 5000:5000 registry这将自动下载并启动一个registry容器,创建本地的私有仓库服务默认情况下回创建在容器的/tmp/registry目录下,可以通过-v参数来讲镜像放在本地的指定路径上下面例子将上传的镜像放到/opt/registry 目录docker run -d -p 5000:5000 -v /opt/registry:/tmp/registry registry

[root@gitlab conf]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED            SIZE
registry                  latest              c6c14b3960bd        4 weeks ago         33.28 MB

2,确保registry是up状态

我们可以看到registry一件被run起来来

[root@gitlab conf]# docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
29c0811c9195        registry               "/entrypoint.sh /etc/"   17 minutes ago      Up 17 minutes       0.0.0.0:5000->5000/tcp   awesome_wescoff
240c99335256        marksugar/nginx        "/usr/local/nginx/sbi"   2 hours ago         Up 2 hours          0.0.0.0:81->80/tcp       mynginx
b889bfd7a6ee        marksugar/nginx:8.33   "/bin/bash"              21 hours ago        Up 7 hours          0.0.0.0:80->80/tcp       nginx
[root@gitlab conf]# 

3,将镜像标记并上传

使用docker tag将一个镜像标记,格式如下:10.10.239.222:5000/alpine,其中10.10.239.222是本地仓库地址,5000为仓库端口,alpine是镜像标签这里的10.10.239.222可以是本地的ip也可以是域名,如:www.linuxea.com

[root@gitlab conf]# docker tag benyoo/alpine:3.4.20160812 10.10.239.222:5000/alpine

当标记完成后,本地的images中会存放一个和标记名称一样的镜像,我们将这个镜像上传即可

[root@gitlab conf]# docker push 10.10.239.222:5000/alpine
The push refers to a repository [10.10.239.222:5000/alpine]
93d40cd73394: Pushed 
4fe15f8d0ae6: Pushed 
latest: digest: sha256:41250fea2bc5dfdc204d54e4d2108aae7a452876bed359ae277983aea4ae3e02 size: 739
[root@gitlab conf]# 

4,使用本地仓库pull

尝试一次pull方才进行push到本地仓库的镜像,你会发现本地镜像速度比docker hub要快上很多

[root@localhost ~]# docker pull 10.10.239.222:5000/alpine
Using default tag: latest
latest: Pulling from alpine
Digest: sha256:41250fea2bc5dfdc204d54e4d2108aae7a452876bed359ae277983aea4ae3e02
Status: Downloaded newer image for 10.10.239.222:5000/alpine:latest
[root@localhost ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
marksugar/alpine            latest              07a4ff4374e1        23 hours ago        11.54 MB
debian                      latest              031143c1c662        29 hours ago        125.1 MB
marksugar/nginx             8.30                e50a274c5823        33 hours ago        13.77 MB
10.10.239.222:5000/alpine   latest              0ae37ed604b2        2 weeks ago         11.54 MB
benyoo/alpine               3.4.20160812        0ae37ed604b2        2 weeks ago         11.54 MB
nginx                       latest              0d409d33b27e        3 months ago        182.7 MB
[root@localhost ~]# 

报错解决办法:

Error response from daemon: Get https://10.10.239.222:5000/v1/_ping: http: server gave HTTP response to HTTPS client

只需要两步即可:1,Create or modify /etc/docker/daemon.json

[root@localhost ~]# echo '{ "insecure-registries":["10.10.239.222:5000"] }' > /etc/docker/daemon.json
[root@localhost ~]# cat /etc/docker/daemon.json
{ "insecure-registries":["10.10.239.222:5000"] }

2,重载dockerroot@localhost ~]# systemctl restart docker如果你有任何疑问你可以在本站留言

请输入图片描述

相关文章

LeaferJS 1.0 重磅发布:强悍的前端 Canvas 渲染引擎
10分钟搞定支持通配符的永久有效免费HTTPS证书
300 多个 Microsoft Excel 快捷方式
一步步配置基于kubeadmin的kubevip高可用
istio全链路传递cookie和header灰度
REST Web 服务版本控制

发布评论