注意事项
强烈建议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