Linux环境Docker在线和离线安装以及镜像的加载


Docker目前在市面上使用的非常广泛,作为一个开发人员,必须要会Docker的一些基本操作,这篇笔记就是记录在Linux环境下安装docker容器,然后将镜像文件加载到镜像文件,最后将本地的目录挂载到容器中,提供容器内使用。

1. 获取Docker的方式

安装使用rpm包方式,这里需要下载rpm安装包,如果直接从官网上下载的话,会很慢,甚至直接就连不上。所以这里推荐阿里的镜像源下载,下载的方式有两种,一种是直接本地下载,一种是在机器上使用wget命令下载。

  • 本地直接下载:阿里开源镜像站
  • Linux系统机器wget下载:wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm(注意使用这种方式需要Linux系统本身可以连外网)

2. 在线安装(推荐)

  • 首先看一下CentOS系统的内核版本,Docker需要CentOS版本在3.10以上。
# 查看Centos系统内核版本命令
uname -r
  • 使用root权限,更新yum,确保yum包更新到最新版本。
yum -y update
  • 如果有安装过docker,先卸载旧版本
yum remove docker docker-common docker-selinux docker-engine
  • 安装需要的依赖软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
  • 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 安装docker
yum install -y docker-ce
  • 启动docker,并将docker加入到开机自动启动
systemctl start docker
systemctl enable docker
  • 验证是否安装启动成功
docker version

3. 离线安装(被迫情况下)

在完全没有外网的Liunx机器中安装docker,这个时候只能使用本地下载rpm包,上传到服务器中,然后按照以下步骤安装。离线安装和在线安装的区别主要是安装包的问题,在线安装如果有需要的依赖,会自动下载安装,但是在离线状态下,如果遇到需要的依赖,只能手动的安装,因此这个时候所需要准备的安装包就不止上面下载的那一个了。。

3.1 安装包准备

下面列举的安装包在下载docker-ce的时候进入的页面内都可以找到。

注意:

  1. docker-ce-selinuxdocker-ce-clidocker-ce三个rpm包的版本要求一样。containerd.io的版本使用最新的即可。
  2. 如果你使用的docker版本比较高,可能会没有对应的docker-ce-selinux安装包,这是由于在高版本中把docker-ce-selinux废弃了,需要另外下载container-selinux替代,下载地址:https://pkgs.org/download/container-selinux

3.2 安装过程

  • 添加repo:将下载好的docker-ce.repo文件拷贝到/etc/yum.repos.d/下;
  • 按顺序依次安装containerd.iodocker-ce-clidocker-ce-selinuxdocker-ce包:
rpm -ivh containerd.io-**.rpm
rpm -ivh docker-ce-cli-**.rpm
rpm -ivh docker-ce-selinux-**.rpm ##或者rpm -ivh container-selinux-**.rpm
rpm -ivh docker-ce-**.rpm
  • 上面所有命令执行结束,docker安装成功,可以通过docker启动命令启动,然后做自己的操作啦。

3.3 依赖补充

在安装过程中一帆风顺很好,但是如果遇到需要安装的依赖,依次安装即可。(偷偷告诉你一个秘密,需要的补充的依赖很多,安装到一半放弃啦!)

这里通过在线安装给大家看一下再此过程中涉及到多少依赖:

Installed:
  docker-ce.x86_64 0:17.12.1.ce-1.el7.centos

Dependency Installed:
  audit-libs-python.x86_64 0:2.8.5-4.el7           
  checkpolicy.x86_64 0:2.5-8.el7        
  container-selinux.noarch 2:2.119.2-1.911c772.el7_8
  libcgroup.x86_64 0:0.41-21.el7                   
  libseccomp.x86_64 0:2.3.1-4.el7       
  libsemanage-python.x86_64 0:2.5-14.el7
  policycoreutils-python.x86_64 0:2.5-34.el7       
  python-IPy.noarch 0:0.75-6.el7        
  setools-libs.x86_64 0:3.3.8-4.el7

Dependency Updated:
  policycoreutils.x86_64 0:2.5-34.el7

4. 镜像加载

上面安装结束后,需要将镜像加载到docker容器中。命令如下:

docker load < 镜像文件

查镜像是否加载成功

docker image list

5. 普及几个docker命令

# 查看docker状态
systemctl status docker
# 设置docker开机自动启动
systemctl enable docker # 或者chkconfig docker on
# 启动docker
systemctl start docker
# 停止docker
systemctl stop docker
# docker容器镜像列表
docker image list
# 启动docker内指定ID的镜像
docker start [ID]
# 停止docker内指定ID的镜像
docker stop [ID]
# 进入docker内指定ID的命令终端
docker exec -it [ID] /bin/bash
# 在宿主机中执行docker容器内的shell命令
docker exec -it [ID] /bin/bash -c 'cd /home/demo/ && ./demo.sh'
# 根据镜像ID删除镜像(如果镜像被其他容器引用,需先删除容器)
docker rmi [image_id]
docker rmi -f [image_id] # 强制删除,不管是否被其他容器引用
# 查看docker中的容器列表
docker pa -a
# 删除容器,根据容器ID
docker rm [ID]

文章作者: 程序猿洞晓
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 程序猿洞晓 !
评论
 上一篇
在一台电脑上配置多个git账户解决方案 在一台电脑上配置多个git账户解决方案
最近遇到一个问题,我自己个人有一个码云的代码托管仓库,平时我自己的电脑直接配置账号拉取代码即可,但是现在需要用自己的电脑,开发公司的项目,这个时候就需要在电脑上使用不同的git账户,在度娘上找了很多解决方案,没有遇到完整可用的,经过使用总结和调试,得出以下配置方式,适用于第一拉代码和第一次提交代码。
2020-12-14
下一篇 
Linux环境JDK安装 Linux环境JDK安装
Linux环境安装JDK很简单,但是环境变量的配置总是忘,如果直接敲太累,网上查,时间成本高(各种配置方式,有的可能还是错的)。还是自己做一个笔记吧!
2020-10-10
  目录