容器云 docker

容器云 docker,第1张

容器云

认识容器 容器简介 容器是一种轻量级的、可移植的、自包含的软件打包技术 本质:一组受到资源限制且彼此间相互隔离的进程 与虚拟化技术的区别 传统虚拟化技术 虚拟了一套硬件后,在其上运行一个完整的 *** 作系统,在该系统上再运行所需应用进程 容器 可共享同一个 *** 作系统的内核,将应用进程与系统其他部分隔离开 资源有限时,想部署轻量级应用,容器更有优势 docker容器 定义:一个开源的应用容器引擎 三大技术 Namespace 分离进程树、网络接口、挂载点以及进程间通信等资源的方法 docker就是通过namespace对不同的容器实现隔离 Cgroups 作用:限制某个或某些进程的资源分配 AUFS 能透明地覆盖一或多个现有文件系统的层状文件系统,支持将不同目录挂载到同一个虚拟文件系统下的文件系统
  • 可以把不同的目录组合在一起,形成一个单一目录
是一种虚拟化技术,不用格式化,直接挂载 Copy on Write(写入复制)
  • 可以把多层合并文件系统的单层表示
docker的优势 更高效地利用系统资源 更快速的交付和部署 更高效的部署和扩容 更简单的管理 Docker容器的系统架构 docker的架构 C/S架构
  • 使用远程API管理和创建docker容器
docker的组件 docker daemon服务器 docker客户端 docker镜像
  • 是一个只读模板,用于创建docker容器

    • 由Dockerfile描述镜像内容
  • 自定义镜像

    • 起因:docker hub提供的镜像无法满足日常工作需求

    • 方法

      • Docker Commit

      • Dockerfile

docker仓库
  • 用于集中存放镜像文件的场所

  • 分类

    • 互联网公共镜像仓库:Docker Hub

    • 私有镜像仓库:Registry

docker容器
  • 一个镜像的运行实例

  • 在宿主机 *** 作系统的用户空间中运行,与 *** 作系统其他进程隔离

Docker容器的实训 Docker引擎的安装 基础环境配置 配置yum源 vi /etc/yum.repod.s/local.repo
  • [kubernetes]

  • name=kubernetes baseurl=file:///root/Docker

  • gpgcheck=0

  • enabled=1

升级系统内核 yum upgrade -y uname -r 配置防火墙和SELinux systemctl stop firewalld && systemctl disable firewalld iptables -t filter -F iptables -t filter -X iptables -t filter -Z /usr/sbin/iptables-save sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config reboot 开启路由转发 cat >> /etc/sysctl.conf << EOF net.ipv4.ip_forward=1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF modprobe br_netfilter sysctl -p Docker引擎安装 安装依赖包 yum install -y yum-utils device-mapper-persistent-data 安装docker-ce yum install docker-ce-18.09.6 docker-ce-cli-18.09.6 containerd.io -y 启动docker systemctl daemon-reload systemctl restart docker systemctl enable docker 查看docker系统信息 docker info Docker仓库的使用 构建私有仓库 在搭建好docker的环境下运行 Registry仓库 ./image.sh docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest 查看运行情况 docker ps 私有仓库的使用 上传镜像 cat /etc/docker/daemon.json { “insecure-registries”: [“10.18.4.30:5000”] } systemctl restart docker 为镜像打上标记 docker tag centos:latest 10.18.4.30:5000/centos:latest 上传标记的镜像 docker push 10.18.4.30:5000/centos:latest curl 命令查看仓库中的镜像 curl -L http://10.18.4.30:5000/v2/_catalog 拉取镜像 docker pull 10.18.4.30:5000/centos:latest Docker仓库 构建https证书 生成 CA 证书 mkdir -p /data/ssl cd /data/ssl/ openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 2.235 -out ca.crt 生成证书签名请求 openssl req -newkey rsa:4096 -nodes -sha256 -keyout www.yidaoyun.com.key -out www.yidaoyun.com.csr 生成注册表主机的证书 openssl x509 -req -days 2.235 -in www.yidaoyun.com.csr -CA ca.crt 10 -CAkey ca.key -CAcreateserial -out www.yidaoyun.com.crt 分发证书 cp -rfv www.yidaoyun.com.crt /etc/pki/ca-trust/source/anchors/ update-ca-trust enable update-ca-trust extract 安装 docker-compose mv docker-compose /usr/local/bin/ chmod +x /usr/local/bin/docker-compose docker-compose --version 安装Harbor仓库 下载 Harbor 安装包 tar -zxvf harbor-offline-installer-v1.5.3.tgz -C /opt/ 进入到 harbor 目录 cd /opt/harbor/ 编辑配置文件 vi harbor.cfg
  • hostname = 10.24.2.37 #修改 harbor 的启动 ip,这里需要依据系统 ip 设置

  • ui_url_protocol = https #启用加密传输协议 https

  • ssl_cert = /data/ssl/www.yidaoyun.com.crt #证书的位置

  • ssl_cert_key = /data/ssl/www.yidaoyun.com.key #证书密钥位置

  • harbor_admin_password = 000000 #修改 harbor 的 admin 用户的密码

安装 Harbor ./prepare 镜像管理与安全 配置本地 deamon.json 文件 { “registry-mirrors”: [“https://5twf62k1.mirror.aliyuncs.com”], “insecure-registries”: [“10.24.2.37”] } systemctl restart docker 重新启动 Harbor 私有镜像仓库 ./prepare 清理所有 Harbor 容器进程 cd /opt/harbor docker-compose down docker-compose up -d 上传镜像 docker tag centos:latest 10.24.2.37/library/centos:latest docker login https://10.24.2.37 docker push 10.24.2.37/library/centos:latest 重新启用漏洞扫描 ./install.sh --with-notary --with-clair Docker镜像和容器的使用 镜像的基本管理和使用 查看镜像列表 ./image.sh docker images 运行容器 docker run -i -t -d httpd:2.2.31 /bin/bash 查找镜像 docker search --filter=stars=10 java
  • –automated:只列出 automated build 类型的镜像。

  • –no-trunc:显示完整的镜像描述。

  • –filter=stars:列出收藏数不小于指定值的镜像.

从容器创建一个新的镜像 # docker commit -a “xiandian” -m “nginx-test” 5d42a9fafeb6 nginx:v1 docker命令 docker tag 语法 docker tag IMAGE:TAG/]REPOSITORY[:TAG] docker images REPOSITORY:表示镜像的仓库源。 TAG:镜像的标签。 IMAGE ID:镜像 ID。 CREATED:镜像创建时间。 SIZE:镜像大小。 docker run -i:交互式 *** 作。 -t:终端。 -d:后台运行。 httpd:2.2.31:镜像名,使用 https:2.2.31 镜像为基础来启动容器。 /bin/bash:容器交互式 Shell。 获取镜像语法 docker pull [OPTIONS] NAME[:TAG|@DIGEST] 查找镜像 docker search [OPTIONS] TERM 删除镜像 docker rmi [OPTIONS] IMAGE [IMAGE…] 强制删除。 –no-prune:不移除该镜像的过程镜像,默认移除。 启动容器 docker start [CONTAINER ID] 列出所有容器(包含终止状态) docker ps -a 查看具体容器的信息 docker inspect [container ID or NAMES] 查看容器的使用资源状况 docker stats [container ID or NAMES] 进入容器 docker exec -it [CONTAINER ID] bash 删除终止状态的容器 docker rm [CONTAINER ID] 删除运行中的容器 docker rm -f [CONTAINER ID] 导入/导出容器 docker export [CONTAINER ID] > [tar file] cat [tar file] | docker import - [name:tag] 将镜像保存为文件 docker save -o [tar file] IMAGE 从容器创建一个新的镜像 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  • -a:提交的镜像作者

  • -c:使用 Dockerfile 指令来创建镜像

  • -m:提交时的说明文字

  • -p:在 commit 时,将容器暂停

Dockerfile FROM:指定基础镜像,必须为第一个命令。 MAINTAINER:维护者信息。 RUN:构建镜像时执行的命令。 ADD:将本地文件添加到容器中,tar 类型文件会自动解压(网络压缩资源不会被解 压),可以访问网络资源,类似 wget。 COPY:功能类似 ADD,但是是不会自动解压文件,也不能访问网络资源。 CMD:构建容器后调用,也就是在容器启动时才进行调用。 ENTRYPOINT:配置容器,使其可执行化。配合 CMD 可省去“application”,只使 用参数。 LABEL:用于为镜像添加元数据。 ENV:设置环境变量。 EXPOSE:指定与外界交互的端口。 VOLUME:用于指定持久化目录。 WORKDIR:工作目录,类似于 cd 命令。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/876697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存