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

系统版本要求

  1. 当前系统版本:CentOS Linux release 7.9.2009 (Core)
  2. 内核版本:3.10.0-1160.el7.x86_64
  3. 注:系统内核版本要求3.10以上
  1. uname -r #查看当前系统内核版本
  2. cat /etc/redhat-release # 查看当前系统版本
  3. yum update (非正式环境下使用)
  4. 版本介绍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.解压文件

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

4.配置docker 为service服务

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

5.添加可执行权限

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

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

6.配置镜像加速

  1. vi /etc/docker/daemon.json
  2. {
  3. "registry-mirrors": ["https://registry.docker-cn.com"]
  4. }
  1. systemctl daemon-reload #重新加载配置(每次修改文件后需执行)
  2. systemctl restart docker.service

7.检查安装版本

  1. docker version ##或
  2. docker -v

内网下载镜像

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

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

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

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

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

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

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

  1. docker load -i mysql.tar ##导入镜像
  2. 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. Local dimming algorithm in matlab plus 1

    (续)LED局部背光算法MATLAB仿真 在上一篇博客<Local dimming algorithm in matlab>中,我们实现了对一篇论文的算法用matlab仿真.在本篇论文中, ...

  2. 为什么0x100是256个字节、0x400是1KB、0x800是2KB、0x1000是4KB?

    [TOC] # 前言在刚开始学习嵌入式时我们就遇到各种进制之间的换算,十六进制.十进制.八进制.二进制等等,一开始会经常在各种进制之间迷失自我:在深入学习或者做项目或者工作时我们也经常要查看各种芯片的 ...

  3. ES6新增语法(四)——面向对象

    ES6中json的2个变化 简写:名字和值相同时,json可以可以简写 let a=12,b=5; let json = { a, b } console.log(json) // { a:12 , ...

  4. 家庭账本开发day09

    编写数据表格的编辑操作,大体思路和删除操作一样 点击按钮,弹出修改项目,从父窗口获取已有的值赋给 弹出的子窗口中相应的值,在子窗口中点击提交,ajax请求 servlet修改.成功后重载表格,或者up ...

  5. 前端开发入门到进阶附录一【JQuery中parent(),parents(),parentsUntil()区别和使用技巧】

    JQuery中parent(),parents(),parentsUntil()区别和使用技巧:https://blog.csdn.net/china1223/article/details/5193 ...

  6. 微信小程序云开发-云存储的应用-云相册

    一.准备工作 1.创建数据库表images 2.设置数据库表images的权限 二.创建图片列表页 创建图片列表页imageList,用于展示图片列表.该页面具有跳转到图片上传页面.图片列表展示.删除 ...

  7. bootstrap与vue的区别是什么?(十七)

    Bootstrap Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML.CSS.JavaScript 开发的简洁.直观.强悍的前端开发框 ...

  8. TypeError: attrib() got an unexpected keyword argument 'convert'

    使用pyinstaller -F aaa.py时,报错 TypeError: attrib() got an unexpected keyword argument 'convert' 没有exe生成 ...

  9. jQuery 两个日期时间相减

    var sDate='2016-10-31';var eDate='2016-10-10'var sArr = sDate.split("-");var eArr = eDate. ...

  10. 5G时代,视频会议的未来

    过去,2G打开了了移动互联网天下,3G促成了即时通信,诞生了QQ.微信等巨头,4G 带来了短视频兴起,字节跳动等公司崛起.2.3.4G的出现促成了移动互联网10年繁荣.而5G的出现,也会促成至少10年 ...