栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

笔记【容器技术-docker】

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

笔记【容器技术-docker】

文章目录
    • 虚拟化
      • 虚拟化技术
      • 虚拟化分类
    • 容器化
      • Docker三大核心概念
      • Docker官方服务
      • Docker服务安装
      • Docker镜像
        • 构建新的镜像
          • 通过Dockerfile构建
        • 导出和载入
          • 保存镜像为文件
          • 从文件载入镜像
        • 镜像重命名
        • 推送到镜像库
      • Docker容器
        • 搭建私人仓库

虚拟化 虚拟化技术

概念:虚拟化是一种资源管理技术,是将计算机的各种实体资源抽象(例如:CPU、内存等)、转换后呈现出俩,打破实体结构间的不可切割的障碍,是用户可以更好的方式使用这些资源
核心:对资源抽象
目的:通过在同一台主机上运行多个系统,从而提高系统资源的利用率,并且带来了降低成本、方便管理和容错容灾等好处。

  • 拓展

沙箱:沙箱是一种按照安全策略限制程序行为的执行环境
云平台:是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力

虚拟化分类

容器化 Docker三大核心概念

镜像:可以理解为创建容器的模板(一个只读的文件系统,版本管理和增量快照都借鉴了Git的设计思路)
容器:可以理解为轻量级的沙箱环境(通过在镜像最上层创建一个读写层实现,是镜像的一个运行实例)
仓库:存放镜像的地方(类似Git的代码仓库)

Docker官方服务

Docker引擎:分为社区版CE(一般够用)、企业版EE
DockerHub:镜像托管服务
DockerCloud:云服务

Docker服务安装

参考 搭建【docker in centos7.x】

Docker镜像 构建新的镜像 通过Dockerfile构建

构建Dockerfile

FROM registry.cn-qingdao.aliyuncs.com/starcharge-base/oracle-jdk8
WORKDIR /ejy
ENTRYPOINT nohup java -Djava.security.egd=file:/dev/./urandom -Duser.timezone=GMT+08 -Dfile.encoding=UTF-8 -server -Xverify:none -jar ${jvmparams} app.jar > ./logs/console.log 2>&1

打包成镜像文件

# ejy-jdk8:1.0.0 -> 镜像名:版本号;. -> Dockerfile所在目录
docker build -t ejy-jdk8:1.0.0 .

用镜像启动应用

#!/bin/bash
cId=$(docker ps -a | grep 'demo' | awk '{print $1}')
echo "demo container id : $cId"

if [ -n "$cId" ]; then
     # echo "111111"
     sId=$(docker ps | grep 'demo' | awk '{print $1}')

     if [ -n "$sId" ]; then
         echo "stop container id:"
         docker stop $sId
     fi
     
     echo "rm container id:"
     docker rm $cId
fi

echo "restart container"
docker run --name demo --restart=always -v /opt/demo/jar/demo.jar:/ejy/app.jar -v /opt/demo/logs:/ejy/logs -p 8798:8798 -e jvmparams="-Xmx1g -Xms1g -XX:+PrintCommandLineFlags" -d ejy-jdk8:1.0.0
导出和载入 保存镜像为文件

docker save -o 要保存的文件名 要保存的镜像
例如:
docker images
docker save -o java8.tar lwieske/java-8

从文件载入镜像

docker load --input 文件
或
docker load < 文件名
例如:
docker load < java8.tar

镜像重命名
## 老的镜像名+版本或镜像id->新的镜像名(如果是私有镜像需包含在镜像名中)+版本号 
docker tag [imageId(镜像id)| image:tag(镜像名:版本号)] repository:tag

例如:

推送到镜像库
## 私有镜像库登录
docker login -u=18019699403 -p=xxxx registry.cn-hangzhou.aliyuncs.com
## 推送镜像到私仓
docker push registry.cn-hangzhou.aliyuncs.com/ejy365/ejy-jdk8:1.0.0
## 推送日志
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/ejy365/ejy-jdk8]
1d5eda3c4fc4: Pushed 
1cf7cdb9e084: Mounted from ejy365/sentinel-dashboard 
e15afa4858b6: Mounted from ejy365/sentinel-dashboard 
1.0.0: digest: sha256:1dd2fce6dcfb182a13e98585349b3f21d4d5c4a0c9841c8a4f421619bd494d8b size: 949
Docker容器 搭建私人仓库
  • 使用官方提供的registry搭建
[root@docker02 registry]# docker run -p 5000:5000 -v /usr/local/data/registry:/var/lib/registry -d registry
[root@docker02 registry]# docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS                                       NAMES
3ec98c2ff204   registry   "/entrypoint.sh /etc…"   4 seconds ago   Up 3 seconds   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   awesome_lewin
  • 添加5000端口防火墙白名单,参考 笔记【开启防火墙端口 in CentOS7.x】

  • 查看是否搭建完成,由于目前没有资源只显示了{}

[root@docker01 ~]# curl 'http://192.168.1.131:5000/v2/'
{}
  • 推送镜像报错,高版本registry会校验https,通过配置客户端避免安全校验
[root@docker01 ~]# docker push 192.168.1.131:5000/ubuntu:v1.0.0
The push refers to repository [192.168.1.131:5000/ubuntu]
Get "https://192.168.1.131:5000/v2/": http: server gave HTTP response to HTTPS client
# 修改daemon.json配置文件
[root@docker01 ~]# vi /etc/docker/daemon.json
{
  "debug": true,
  "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"],
  "insecure-registries": ["192.168.1.131:5000"]
}
# 重启服务
[root@docker01 ~]# systectl restart docker
# 重新推送镜像
[root@docker01 ~]# docker push 192.168.1.131:5000/ubuntu:v1.0.0
The push refers to repository [192.168.1.131:5000/ubuntu]
5d46e30d8bbf: Pushed 
e59fc9495612: Pushed 
v1.0.0: digest: sha256:4faa72c1424a6e7cb5d49504d5ba71c8a175fe3a64dc793e9a07b608ff6dd0cb size: 736
# 密码认证功能,待续...
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/941533.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号