首页 > 其他分享 >docker笔记-安装、操作和Registry

docker笔记-安装、操作和Registry

时间:2023-04-01 21:47:07浏览次数:54  
标签:容器 5000 笔记 registry 镜像 docker alpine Registry

注意事项

强烈建议docker宿主机关闭firewalld,改用iptables

1 docker安装

1.1 离线安装

下载 Docker 二进制文件(https://download.docker.com/linux/static/stable/x86_64/)

tar zxf docker-xxxx-ce.tgz
cp docker/* /usr/bin/
dockerd &

验证

docker info

注册成服务

vi /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
 
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target

重载服务配置

systemctl daemon-reload

1.2 在线安装

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl start docker

2 docker常用命令

2.1 下载镜像

docker search xxx
docker pull xxx

2.2 使用镜像

打包镜像

进入项目目录

docker build -t XXX:1.0 .

保存镜像

将容器保存为镜像

docker commit <容器id> <镜像名>:<tag>

将镜像保存为文件

docker save -o XXX.tar XXX:1.0

2.3 使用镜像

导入镜像

docker load -i XXX.tar

运行容器

-d 后台运行 -v 目录映射(宿主机:容器) -p 端口映射(宿主机:容器)-e 设置环境变量 --privileged=true特权运行

docker run --name xxxx -v /var/log/xxx.log:/api/log/xxx.log -e xxxx="xxxx" -e --privileged=true -p 1000:1000 -d xxx:1.0 

进入容器

docker exec -it xxxx /bin/sh

2.4 制作镜像(以python3环境为例)

# 拉取镜像 
 docker pull alpine:latest
# 创建一个名为alpine的容器
docker run -itd --name alpine alpine:latest /bin/sh
# 进入alpine容器
docker exec -it alpine /bin/sh

容器内操作

# 更改软件源(此处以3.12为例)
vi /etc/apk/repositories
http://mirrors.aliyun.com/alpine/v3.12/main/
http://mirrors.aliyun.com/alpine/v3.12/community/
# 更新软件源
apk update
# 安装python3
apk add python3
# 安装pip3
apk add py3-pip

3 Registry常用命令

3.1 部署

拉取镜像

docker pull registry

启动

docker run --name registry -d -p 5000:5000 -v /home/registry:/var/lib/registry registry:latest

3.2 上传镜像

标记

docker tag alpine:latest localhost:5000/alpine:v1.0

上传

docker push localhost:5000/alpine:v1.0

3.3 查看镜像

查看镜像名称

curl -X GET http://localhost:5000/v2/_catalog

查看镜像标记

curl -X GET http://localhost:5000/v2/alpine/tags/list

3.4 下载镜像

本地下载

docker pull localhost:5000/alpine:v1.0

远程下载

错误信息 http: server gave HTTP response to HTTPS client
新增文件 /etc/docker/daemon.json

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "192.168.199.100:5000"
  ]
}

重启docker服务
重新拉取

docker pull 192.168.145.135:5000/alpine:v1.0

3.5 删除镜像

通过API只能删除tag,并不会删除镜像,直接删除文件更简单。
进入容器,清空/var/lib/registry/docker/registry/v2/repositories/目录,或者删除映射的本地目录
垃圾回和重启容器

docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml
docker restart registry

标签:容器,5000,笔记,registry,镜像,docker,alpine,Registry
From: https://www.cnblogs.com/virtualzzf/p/17279450.html

相关文章

  • Vue3学习笔记(7.0)
    Vue3计算属性计算属性关键词:computed计算属性在处理一些复杂逻辑时是很有用的。可以看下以下反转字符的例子:<!--*@Author:[email protected]*@Date:2023-03-3008:30:35*@LastEditors:Mei*@LastEditTime:2023-03-3008:33:36*@FilePath:\vscode\vue_co......
  • Vue3学习笔记(4.0)
    vue.js为两个最为常用的指令提供了特别的缩写://全称<av-bind:href="url"></a>//缩写<a:href="url"></a>v-on缩写//全称<av-on:click="doSomething"></a>//缩写<a@click="doSonthing"></a>条件判断条件判断使......
  • 笔记1
        刚开始读《构建之法》这本书时,书上所提到的很多问题都是我们平常在写代码时候会犯的一些小的错误,就我个人而言,在我还没读《构建之法》这本书之前,我还不知道我平常在写代码中犯了这么多的错误,虽然这些错误都是一些小错误,并不影响代码的执行,但是看了《构建之法》这......
  • 笔记2
    我在编写代码的时候没有重视代码规范的问题。现代软件产业经过几十年的发展,一个软件由一个人单枪匹马完成,已经很少见了,软件都是在相互合作中完成的。合作的最小单位是两个人,两个工程师在一起,做的最多的事情就是“看代码”,每个人都能看“别人的代码”,并发表意见。这时,如果我们的代......
  • 笔记3
    我在编程时没有重视团队的重要性,对于团队的认识还不够。团队有一致的集体目标。团队成员有各自的分工,互相依赖合作,共同完成任务。软件团队的模式有一窝蜂模式、主治医生模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐模式、爵士乐模式、功能团队模式、官僚......
  • 《前端构建工具(webpack&vite)- 李立超》笔记
    1.构建工具简介1.1模块化最初我们都使用script标签来引入js,但当一个页面引入的js文件越来越多时,就产生了几个难以避免的问题:全局变量污染。变量重名。js之间的依赖关系复杂,无法保证顺序。而模块化规范就是为解决以上问题,模块内部的变量实现了在其他模块内共享。而且可以......
  • Docker安装
    卸载历史版本apt-getremovedockerdocker-enginedocker.iocontainerdrunc&&apt-getpurgedocker-cedocker-ce-clicontainerd.iodocker-compose-pluginrm-rf/etc/docker&&rm-rf/usr/libexec/docker&&rm-rf/var/lib/docker&&......
  • 面试笔记-Docker(Ⅱ)
    上篇文章已经成功build了image并且创建了container运行成功,我们现在进行接下来的工作目录挂载使用Docker运行后,我们改了项目代码不会立刻生效,需要重新build和run,很是麻烦。容器里面产生的数据,例如log文件,数据库备份文件,容器删除后就丢失了。......
  • JS基础《JavaScript精粹》笔记摘录
    基础概念和语法基本类型、null、undefined、NaNJavaScript定义了一小批基本类型(primitivetype),它们包括字符串类型(string,单引号或双引号包起来)、数值类型(number,整数和小数都用这个类型)和布尔类型(boolean,值仅有true和false)。JavaScript使用两个特殊的值来表示不存在有意义的值—......
  • 笔记:洛谷 P3985 不开心的金明
    算法笔记:[背包问题]洛谷P3985不开心的金明题目详情原题链接:洛谷P3985不开心的金明不开心的金明Description  金明今天很不开心,家里购置的二手房就要领钥匙了,房里并没有一间他自己专用的很宽敞的房间。更让他不高兴的是,妈妈昨天对他说:“你需要购买哪些物品,怎么布置,你......