DevOps中的CI/CD环境搭建与调优-Docker基础与操作

容器化部署

Jenkins->GitLab代码仓库->Sonar代码审查->Maven编译->war/jar包格式

容器化部署
CentOS 7.6之前 Docker容器
CentOS 7.7-8.X-Podman
Docker生态

  • Docker仓库Repository -存镜像
    Docker Hub公共仓库
    Docker Repository私有仓库技术
    VMWare Harbor 容器仓库(推荐)
    阿里云 镜像仓库技术
  • Docker镜像Image
    一个root文件系统
    Dokcer镜像时分层
    Dokcer镜像优化的过程
  • Docker容器Contanier
    使用镜像创建容器,就像是类和对象之间的关系
    容器的常见操作
    创建,启动,停止,暂停,删除等

Dokcer架构

  • Docker 引擎架构
    Docker客户端
    Docker服务端
    Docker需要守护进程API服务
    新版本的容器中/下一代容器技术/不需要服务端
  • Docker 网络安全
  • Docker 安全架构

Docker基础

  • Docker安装
    Windows系统
    Linux系统
    Mac系统

下载自己操作系统对应的版本

Linux系统-兼容性比较好的-Ubuntu Server 16.04 18.04
RancherOS 针对容器定制化的操作系统
CoreOS/针对Docker优化的-不需要安装Dokcer直接使用

CenOS7.6
第一步

 uname -a 

3.8内核版本以上

第二步
yum update #更新组件

第三步
安装一些依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

第四步
配置国内yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates |sort -r #查看安装源

第五步

yum install -y docker-ce #默认安装最新版本
yum install -y docker-ce-18.03.1.ce #指定版本安装

第六步
启动

systemctl start docker

开机自启(很重要)

systemctl enable docker

校验安装

docker version

Docker常见的基础命令

创建容器

  • 非交互式的容器 docker run ubuntu:18.04 /bin/echo “HelloWorld”
  • 交互式的容器 docker run -it ubuntu:18.04
    进入容器内部

在这里插入图片描述

镜像基础操作

拉取镜像

docker pull ubuntu
docker pull ubuntu:18.06

查看运行容器

docker ps
docker ps -a
docker ps -aq #查看容器id

后台运行容器

docker run -i -t -d ubuntu:18.04

指定名称

docker run -i -t -d --name unbuntu-test   ubuntu:18.04 

终止容器

docker stop 容器id

重启容器

docker restart 容器id

启动

docker strat 容器id

进入容器

docker attach/exec 进入容器

推荐exec的方式进入容器内容,退出容器终端不会导致容器停止
相反attach进入容器,退出容器终端会导致容器终止

删除容器

docker rm 容器id

看日志

docker log 容器名或容器ID

镜像操作

搜索一个镜像

docker search nginx

拉取镜像

docker pull nginx

国内镜像加速
推荐阿里云,账号登录进去就可以获取
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

在这里插入图片描述

vim /etc/docker/daemon.json
sudo systemctl daemon-reload
sudo systemctl restart docker

查看本地镜像

docker images

在这里插入图片描述
在这里插入图片描述

删除镜像

docker rmi 容器名称或容器id

导出

docker export 容器id或者镜像id > ubuntu.tar

导入

docker import ./ubuntu.tar

Docker中镜像分层

在这里插入图片描述
镜像包含完整的root文件系统-联合文件系统

  • 将镜像设计为分层存储
  • 镜像时是一个虚拟的概念
  • 不由单一的一个文件系统组成
  • 由一组文件系统组成
  • 或者也可以说右多层文件系统联合组成

创建镜像

两种方式

docker commit #更新镜像
docker commit -m="update ubuntu18.04" -a="xxx" 容器id

在这里插入图片描述

重点
通过Dockerfile文件

docker build
FROM centos:6.7
RUN /bin/echo 'root:123456' | chpasswd
RUN useradd msb
EXPOSE 80
EXPOSE 22

在这里插入图片描述

镜像标签

在这里插入图片描述

docker tag 镜像id 名字

Dockerfile文件常见的指令

  • FROM 基础镜像-它的妈妈是谁
  • MAINTAINER 运维人员/维护人员-维护者的信息
  • RUN 想让它做什么
  • ADD 往镜像里装点东西-COPY文件/自动解压
  • WORKDIR 当前的工作目录
  • VOLUME 挂载卷-给一个地方存放行李箱
  • EXPOSE 开放容器端口
  • USER 指定root运行
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐