目录
一、安装docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
docker --version
二、搭建本地私有镜像仓库
创建宿主机存储目录,即放容器镜像的路径
mkdir -p /opt/data/registry
下载并启动一个registry容器,-v指定镜像文件本地存放路径
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry --name private_registry registry
配置http权限支持
vim /etc/docker/daemon.json
{
"insecure-registries":["192.168.159.201:5000"]
}
重启docker服务,重启registry服务
systemctl restart docker
docker restart private_registry
上传镜像测试
docker tag centos:7 192.168.159.201:5000/centos7
docker push 192.168.159.201:5000/centos7
docker pull 192.168.159.201:5000/centos7
curl http://192.168.159.201:5000/v2/_catalog
若出现报错http: server gave HTTP response to HTTPS client
vi /usr/lib/systemd/system/docker.service 在ExecStart=/usr/bin/dockerd后添加–insecure-registry 192.168.92.134:5000
重启docker服务
systemctl daemon-reload
systemctl restart docker
docker restart $(docker ps -aq)
三、制作docker镜像
编辑Dockerfile
基本格式
FROM 项目镜像地址
LABLE 标签
RUN 执行操作
ADD 添加文件
制作镜像
docker build -t 192.168.159.201:5000/tomcat-demo -f Dockerfile .
.代表执行相对路径
上传镜像至本地仓库
docker push 192.168.159.201:5000/tomcat-demo
部署到K8S集群
--生成部署yaml文件
kubectl create deployment tomcat-demo --image=192.168.159.201:5000/tomcat-demo --dry-run -o yaml
--启动pods
kubectl apply -f tomcat-demo.yaml
--查看pods状态
kubectl get pods
--暴露服务
kubectl expose deployment tomcat-demo --port=80 --target-port=8080 --type=NodePort -o yaml --dry-run > svc.yaml
kubectl apply -f svc.yaml
kubectl get pod,svc
如何在无网络环境下导入镜像
一、在有镜像的docker环境中将镜像导出成归档文件
命令:docker save 镜像名>xxx.tar
举例:docker save ubuntu>ubuntu.tar
二、将镜像归档文件拷贝到网络不通的主机
根据归档文件输出的路径就可以找到归档文件,上面例子中就是输出到当前目录,通过输入pwd命令即可查询当前目录的路径。
三、将镜像归档文件导入到docker环境
命令: docker load<xxx.tar
举例:docker load<ubuntu.tar
四、验证镜像是否成功导入到docker环境中
命令:docker images