初探docker

什么是docker?docker就是一种虚拟化技术,将一个服务虚拟化成一个拥有操作系统内核作为基石的快速使用服务。不用担心环境不同服务效果

不同。

docker 官网可以从中央仓库中看到一件奇怪的事情,为什么有的docker 镜像同样的服务,有的镜像占用磁盘空间就大,有的就小呢?

这是因为 docker镜像所制作的系统内核不同,比如ubuntu,centos,ubuntu系统内核所占用的空间就比centos要小,但是具体使用哪一种

内核所打包的镜像还是要根据公司来,另外说一句:占用的大小不影响服务的使用,服务都是一样。但是如果磁盘空间紧张还是选择小的为好。

docker中 存在一个镜像标签,TAG,这个表示是由数字 + 字母展示的,实际上该字段展示的长度达到256位,64位十六进制。经过docker的计算

保留了12位。

接下来安装Docker记录的一些命令,采用的是 CentOS 7.9 Mini版本,无插件原生内核操作系统,所以最好完全按照以下操作:

另外附上我的同款系统连接,方便直接配置使用:https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso

一般来说原生的yum 再使用install的时候会 出现 network 网络环境异常,因此需要修改如下:

/etc/sysconfig/network-sripts/ifcfg-ens33

将里面的 最后一行no 修改为yes,之后 service network restart 重启网络服务

因为我是在VM软件中安装的操作系统,ip addr 看不到自己的操作系统网络ip所以需要以下命令:

yum search ifconfig // 检索插件
yum install net-tools.x86_64 // 具体的忘记了= =仔细看search结果的最后一行,类似的就是 ifconfig // 可以看到所处网络ip ,可以使用习惯的工具连接到linux环境进行使用

接下来就是Docker

DNS 配置

echo -e 'nameserver 223.5.5.5' >> /etc/resolv.conf
echo -e 'nameserver 223.6.6.6' >> /etc/resolv.conf systemctl restart network

修改时间

rm -f /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate cn.pool.ntp.org

修改yum源

# 阿里镜像
# https://opsx.alibaba.com/mirror
# http://mirrors.aliyun.com/repo/ # 安装 wget
yum install -y wget # 备份 CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 使用阿里 YUM 源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 清除 YUM 缓存 && 更新 YUM 缓存
yum clean all && yum makecache # 安装 EPEL 源
yum install -y epel-release # 使用阿里 EPEL 源
wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo # 清除 YUM 缓存 && 更新 YUM 缓存
yum clean all && yum makecache

安装基础包

yum install -y curl telnet vim sudo crontabs ntp tcpdump iptables man zip unzip bzip2 tar git rsync

到此Linux的环境配置就结束了,开始安装Docker



首先需要明白,docker镜像如果使用原生的那么就会从docker官网下载以后的镜像资源,阿里提供了镜像加速服务。上图是最新版本的阿里云 容器镜像服务页面,在镜像工具下面

之后可以仿照 点击参考文档右边的docker-ce跟着官方文档走,进行配置甚至直接安装完毕Docker环境

以下以我的操作系统 CentOS 7.9 2009 Mini 为例子,进行的配置:

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start
# Step 5: 设置Docker开机自启
sudo systemctl enable docker 注意:其他注意事项在下面的注释中
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
# 注意:在某些版本之后,docker-ce安装出现了其他依赖包,如果安装失败的话请关注错误信息。例如 docker-ce 17.03 之后,需要先安装 docker-ce-selinux。
# yum list docker-ce-selinux- --showduplicates | sort -r
# sudo yum -y install docker-ce-selinux-[VERSION] # 通过经典网络、VPC网络内网安装时,用以下命令替换Step 2中的命令
# 经典网络:
# sudo yum-config-manager --add-repo http://mirrors.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
# VPC网络:
# sudo yum-config-manager --add-repo http://mirrors.could.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo

一切完成之后,可以尝试查看docker环境是否成功

docker version

接下来是配置Docker的 镜像加速服务



同样的跟着官方文档走就可以:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
# 这里就是举个例子,具体的看各自的控制台
"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

这一切配置好之后Docker就可以正常的使用了

接下来是学习过程中遇到的一些命令也做了如下记录,不过一般hub.docker.com在需要下载的镜像说明文档中都会存在 该镜像的使用方法和镜像个性化的参数启动项。

docker 的常用命令:
docker pull -- 从镜像中央库 下载镜像到本地docker docekr pull image:tags
docker images -- 查看所有的已下载的镜像
docker image ls -- 与上面的功能相同
docker save -- 将镜像打包保存到磁盘中 docker save image:tags -o target.tar
docker load target.tar -- 将打包的镜像从磁盘中读取到docker
docker search image -- 从中央仓库搜索该关键字存在镜像 docker search redis,但是不推荐使用,不太容易看清系统内核等信息
docker inspect image:tags -- 查看镜像以及标签的详细信息,里面包含了环境中会存在哪些会安装什么东西
docker inspect -f {{".Size"}} redis:6.0.9 -f 可以直接筛选自己可以想看到的信息
docker rmi image:tags -- 删除指定镜像
docker image rm image:tags -- 同上一样也是删除镜像
docker history image:tags -- 查看镜像的层次创建信息
docker tag image:tags target:tags -- 修改镜像的名称信息,会创建一个新的镜像。注意:会存在2个,不是真正意义的改名称
这一块需要注意,经过测试如果tag 复制一份别名的镜像如果存在name + tag 相同的情况时,会直接将之前的给覆盖不会报错。
docker run -it --rm image:tags -- 在容器启动镜像并且进入容器 但是外部没有办法访问
docker run -it --rm -p hostPort:dockerPort iamge:tags -- 同上,但是对外部开启了主机的端口映射,宿主主机只需要访问hostPort就可以
访问到容器中的服务,docker run -it --rm -p 8080:6379 redis:6.0.9 就可以通过8080 连接到 docker容器中的服务进行使用
--name 给予创建的容器一个名字、不允许重复
-p 绑定docker容器和主机的端口映射,不能冲突
-i 交互式启动
-t 给予一个伪端
--rm 当断开容器容器自动删除
-d 后台执行启动 不能与rm搭配使用
docker logs -- 查看程序终端启动的控制台打印信息
-f 滚动打印
docker ps -- 查看运行中的全部容器
-a 查询包含不运行的容器
docekr rm container -- 删除容器,不允许删除正在运行的。支持按照名称和容器id删除
-f 强制删除容器
docker start container -- 启动已经创建的容器,服务就会启动
docker stop container -- 停止容器的运行,服务也就会停止
docker restart container -- 重新启动容器
docker create -it --name name -p hostPort:dockerPort image:tag -- 通过镜像创建容器,但是不启动
docker exec -- 进入容器的终端进行操作
docker kill -- stop无法停止容器,使用kill 杀死容器

初探Docker CentOS 7.9 2009 Mini 操作系统环境初始化 和Docker初始化的更多相关文章

  1. Docker运行操作系统环境(BusyBox&Alpine&Debian/Ubuntu&CentOS/Fedora)

    目前常用的Linux发行版主要包括Debian/Ubuntu系列和CentOS/Fedora系列.前者以自带软件包版本较新而出名:后者则宣称运行更稳定一些.选择哪个操作系统取决于读者的具体需求.同时, ...

  2. AspNetCoreapi 使用 Docker + Centos 7部署

    好久没有更新文章了,前段时间写了一系列的文章放到桌面了,想着修修改改,后来系统中勒索病毒了还被公司网络安全的抓到是我电脑,后来装系统文章给装丢了.然后好长一段时间没有写了. 今天记录一下AspNetC ...

  3. docker镜像、容器以及命令操作

    docker image docker image是一个极度精简版的Linux程序运行环境,官网的java镜像包括的东西更少,除非是镜像叠加方式的如centos+java7 docker image是 ...

  4. Docker CentOS 网段与公司网段冲突

    参考文章: <Docker修改默认地址172.17.0.1> 在公司内网的一个虚拟服务器(CentOS 7)安装Docker后,发现网段172.18.0.1和172.17.0.1与公司内部 ...

  5. docker centos 镜像中安装python36详解!生成centos+python36的基础镜像

    获取centos镜像docker pull centos:7.4.1708 启动并进入centos的容器docker run -i –t centos /bin/bash下载安装python编译环境依 ...

  6. Docker镜像与容器的常用操作

    Docker镜像加速配置:Docker镜像常用操作:Dcoker容器常用操作. 镜像加速器 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器.国内很多云服务商都提供了国内加 ...

  7. Docker的镜像及容器常用操作(2)

    一.docker镜像 镜像(docker image) --- Docker 运行容器之前需要本地存在镜像,若本能地不存在,那么 Docker 会找默认镜像仓库( Docker Hub 公共注册服务器 ...

  8. Docker Centos安装Redis以及问题处理

    之前一篇文章 Redis安装及主从配置 介绍了redis的安装配置,另一篇文件介绍了 Docker Centos安装Openssh .今天将两篇文件结合一下——在Docker Centos环境下搭建r ...

  9. Docker Centos安装Mysql5.6

    之前一篇随笔<Docker Centos安装Openssh> 写的是如何在基础的centos镜像中搭建ssh服务,在此基础上再搭建其他服务.本文继续介绍在centos_ssh基础上搭建my ...

随机推荐

  1. ZooKeeper集群解析

    ZooKeeper集群解析. 这篇文章中来介绍一下 ZooKeeper 相关的集群角色,还有 ZAB协议,集群的安装在 ZooKeeper入门 中有介绍. 一.ZooKeeper集群中的角色 Lead ...

  2. 什么是CAP?

    1. 什么是CAP 是一种定理,多用于描述分布式架构,CAP这三个字母对应三种理念,且这三种理念只能两两组合,不能CAP三种理念同时共存(为什么?下面说). C:Consisteny(一致性) A:A ...

  3. 25、mysqlreport(my.cnf)调优工具

    25.1.mysqlreport介绍: mysqlreport以很友好的方式显示 MySQL状态变.事实上,它几乎报告了所有的状态.不像 SHOW STATUS 只是在显示 了100多个状态值,mys ...

  4. json串向后台传递数值自动四舍五入的问题

    业务需求:传递前台输入的数据,数量要求是小数点(多条数据) 后台服务是使用asp.net写的. 问题:反序列化JSON时总是自动四舍五入. 原因:JSON反序列化的时候数据类型是以第一条数据的类型为准 ...

  5. php 基于redis使用令牌桶算法 计数器 漏桶算法 实现流量控制

    通常在高并发和大流量的情况下,一般限流是必须的.为了保证服务器正常的压力.那我们就聊一下几种限流的算法. 计数器计数器是一种最常用的一种方法,在一段时间间隔内,处理请求的数量固定的,超的就不做处理. ...

  6. buu RSA

    一.分析 下载链接,发现一个公钥的文件(e,n),和一个加密过的文件 二. 公钥文件,里面一堆字母,然后后面百度,才知道需要去解开n,e 指数是e,模数是n(十六进制) 三.再通过n来分解素数,得到p ...

  7. Spring常见异常说明

    文章要点 Spring bean 的声明方式 Spring bean 的注入规则 Spring bean 的依赖查找规则 Spring bean 的名称定义方式和默认名称规则 XXX required ...

  8. gitlab配置邮箱服务

    目录 1. SMTP服务 2. 服务端配置 3. 更新配置 4. 邮件测试 当需要进行 账号注册,创建项目,或合并分支等操作时,可通过邮件通知.邮件验证的方式实现. 1. SMTP服务 用于配置在服务 ...

  9. 友链QAQ

    队爷 : 天仙队爷%%% H 队:分块带师%%% KBY :比我小还比我强

  10. python 读取 查询 更新 删除 sql2008 类及应用

    import pymssql class MSSQL: def __init__(self,host,user,pwd,db): self.host = host self.user = user s ...