Docker源码安装附内网镜像安装演示

系统版本要求

当前系统版本:CentOS Linux release 7.9.2009 (Core)

内核版本:3.10.0-1160.el7.x86_64

注:系统内核版本要求3.10以上
uname -r   #查看当前系统内核版本
cat /etc/redhat-release # 查看当前系统版本
yum update (非正式环境下使用)
版本介绍docker-ce社区版 docker-ee企业版 docker-ce-cli客户端 containerd.io 容器

源码包下载

官网下载地址(https://download.docker.com/linux/static/stable/x86_64/docker-19.03.10.tgz)

我这里已docker-19.03.10.tgz该版本做演示

1.下载源码包文件到本地

2.通过远程连接工具(xShell、SecureCRT等将源码包文件上载到服务器自定义目录)

3.解压文件

pwd
/usr/loca/src/ ##自定义文件目录用来存放docker的源码包
tar -zxvf docker-19.03.10.tgz #解压文件
cp docker/* /usr/bin/ #复制解压后文件到/bin(必做)

4.配置docker 为service服务

 vi /etc/systemd/system/docker.service
添加如下内容
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewall.service Wants=network-online.target [Service] Type=notify #the default is not to use systemd for cgroups because the delegay issues still #exists and systemd currently does not support the cgroup feature set required #for containers run by docker ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID #Having non-zero Limit*s causes performance problems due to accounting overhead #in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity #Uncomment TasksMax if your systemd version supports it. #Only Systemd 226 and above support this version #TasksMax=infinity TimeoutStartSec=0 #set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes #kill only the docker process, not all process in the cgroup KillMode=process #restart the docker process if it exits prematurely Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target

5.添加可执行权限

chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload #重新加载配置(每次修改文件后需执行)
systemctl start docker.service
systemctl status docker.service
systemctl enable docker.service ##使服务开启自启

注:如遇到启动不成功可通过状态查询、/var/log/messages/运行日志或直接使用dockerd命令查看错误信息,如还解决不了建议服务器重启一下在运行docker 启动命令

6.配置镜像加速

 vi /etc/docker/daemon.json

{  

"registry-mirrors": ["https://registry.docker-cn.com"] 

}
systemctl daemon-reload   #重新加载配置(每次修改文件后需执行)
systemctl restart docker.service

7.检查安装版本

docker version  ##或

docker -v

内网下载镜像

注:使用 docker pull 拉取镜像的时候需要网络,但是项目部署一般都是在内网。内网访问不了外网,所以需要在外 网环境下把需要的镜像拉取下来打包,然后拷贝到内网,载入到内网的docker

1.在外网机器上拉取mysql镜像,可以看到外网的docker已经拉取了镜像。

docker pull mysql ##拉取mysql 镜像mysql后不跟版本号默认为最新版本
docker images ## 查看镜像

2.将镜像打包成tar压缩包

 docker save -o mysql.tar mysql:latest
docker save #容器ID or name 导出镜像

3.将打包好的mysql镜像包通过远程工具下载到本地

4.拷贝到内网linux服务器并载入docker

docker load -i mysql.tar         ##导入镜像
docker images

docker基础命令使用(扩展)

下载镜像:(https://hub.docker.com/search/ 官网镜像地址)

docker pull [IMAGE_NAME]:[TAG] #命令格式

docker pull mysql:8.0 #下载mysql8.0镜像(不指定默认下载最新版本)

查看当前镜像版本

docker -v #查看当前安装版本

docker version #查看版本信息

docker info #查看系统信息

docker images #查看当前镜像

docker search 镜像名 #搜索镜像

镜像、容器删除

docker rm 容器ID

docker rm 容器名字

docker rmi 镜像ID

docker rmi 镜像名

docker rmi -f 镜像ID #强制删除

创建网络及数据卷

docker volume create +数据卷名称

docker volume list #查看当前数据卷信息

docker network create -d bridge +网络名称

docker network ls #查看当前网络

docker inspect containername +id # 查看容器的hash值

启动、关闭容器

docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2) #关闭所有容器

docker start $(docker ps -a | awk '{ print $1}' | tail -n +2) #开启所有容器

docker inspect 容器ID (使用该命令重点关注容器ip) ##查看容器/镜像元数据

docker exec ##在运行的容器中执行命令

docker exec -it 容器ID /bin/bash ##以交互模式开启伪终端

Docker源码安装附内网镜像安装演示的更多相关文章

  1. Docker源码分析(九):Docker镜像

    1.前言 回首过去的2014年,大家可以看到Docker在全球刮起了一阵又一阵的“容器风”,工业界对Docker的探索与实践更是一波高过一波.在如今的2015年以及未来,Docker似乎并不会像其他昙 ...

  2. docker 源码分析 四(基于1.8.2版本),Docker镜像的获取和存储

    前段时间一直忙些其他事情,docker源码分析的事情耽搁了,今天接着写,上一章了解了docker client 和 docker daemon(会启动一个http server)是C/S的结构,cli ...

  3. Docker源码分析(一):Docker架构

    1 背景 1.1 Docker简介 Docker是Docker公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议.目前,Docker可以在容器内 ...

  4. 转载:Docker源码分析(一):Docker架构

    原文地址: http://www.infoq.com/cn/articles/docker-source-code-analysis-part1  作者:孙宏亮 1 背景 1.1 Docker简介 D ...

  5. Docker源码编译

    官方建议docker源码编译在docker容器内进行,因为官方提供的容器内已经继承了编译需要的环境,如果非要自己搭建编译环境也不是不可以,就是稍微有些繁琐.以下以1.8.2版本为例. 1.pull d ...

  6. Docker源码分析(八):Docker Container网络(下)

    1.Docker Client配置容器网络模式 Docker目前支持4种网络模式,分别是bridge.host.container.none,Docker开发者可以根据自己的需求来确定最适合自己应用场 ...

  7. Docker源码分析(六):Docker Daemon网络

    1. 前言 Docker作为一个开源的轻量级虚拟化容器引擎技术,已然给云计算领域带来了新的发展模式.Docker借助容器技术彻底释放了轻量级虚拟化技术的威力,让容器的伸缩.应用的运行都变得前所未有的方 ...

  8. Docker源码分析(四):Docker Daemon之NewDaemon实现

    1. 前言 Docker的生态系统日趋完善,开发者群体也在日趋庞大,这让业界对Docker持续抱有极其乐观的态度.如今,对于广大开发者而言,使用Docker这项技术已然不是门槛,享受Docker带来的 ...

  9. Docker源码分析(三):Docker Daemon启动

    1 前言 Docker诞生以来,便引领了轻量级虚拟化容器领域的技术热潮.在这一潮流下,Google.IBM.Redhat等业界翘楚纷纷加入Docker阵营.虽然目前Docker仍然主要基于Linux平 ...

随机推荐

  1. 将Acunetix与CircleCI集成

    如果要在DevSecOps中包含Acunetix ,则需要将其与CI / CD系统集成.Acunetix具有针对最受欢迎的CI / CD系统Jenkins的现成集成.但是,您可以使用Acunetix ...

  2. Qt5MV自定义模型与实例浅析

    1. Model/View结构 这种结构,其实就是将界面组件与所编辑的数据分离开来,又通过数据源的方式连接起来,相当于解耦,视图层只关心显示和与用户交互,而数据层负责与实际的数据进行通信,并为视图组件 ...

  3. jieba分词处理

    分词是一种数学上的应用,他可以直接根据词语之间的数学关系进行文字或者单词的抽象,比如,讲一句话"我来自地球上中国"进行单词分割,我们可能会得到如下的内容:"我" ...

  4. K8s基本概念资料

    https://www.cnblogs.com/menkeyi/p/7134460.html

  5. Python爬虫下载酷狗音乐

    目录 1.Python下载酷狗音乐 1.1.前期准备 1.2.分析 1.2.1.第一步 1.2.2.第二步 1.2.3.第三步 1.2.4.第四步 1.3.代码实现 1.4.运行结果 1.Python ...

  6. 谷粒商城--分布式基础篇P28~P101(完结)

    谷粒商城--分布式基础篇P28~P101(完结) 前面1-27节主要是环境配置特别难,后面的28~101节主要是前端编写的代码较多以及后台的CRUD操作比较多.因为内容很多,所以我是根据自己想学的点进 ...

  7. 【模拟】玩具谜题 luogu-1563

    题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singer告诉 ...

  8. C++第三十三篇 -- 研究一下Windows驱动开发(一)内部构造介绍

    因为工作原因,需要做一些与网卡有关的测试,其中涉及到了驱动这一块的知识,虽然程序可以运行,但是不搞清楚,心里总是不安,觉得没理解清楚.因此想看一下驱动开发.查了很多资料,看到有人推荐Windows驱动 ...

  9. Pb代理工具之mitmproxy

    mitmproxy 一 . mitmproxy介绍 mitmproxy 就是用于 MITM 的 proxy,MITM 即中间人攻击(Man-in-the-middle attack). 不同于 fid ...

  10. Python - 对象赋值、浅拷贝、深拷贝的区别

    前言 Python 中不存在值传递,一切传递的都是对象的引用,也可以认为是传址 这里会讲三个概念:对象赋值.浅拷贝.深拷贝 名词解释 变量:存储对象的引用 对象:会被分配一块内存,存储实际的数据,比如 ...