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的时候进入的页面内都可以找到。
- containerd.io-***.rpm
- docker-ce-cli-****.rpm
- docker-ce-selinux-***.rpm
- docker-ce.repo,对应的下载地址:https://download.docker.com/linux/centos/docker-ce.repo
注意:
docker-ce-selinux
、docker-ce-cli
、docker-ce
三个rpm
包的版本要求一样。containerd.io
的版本使用最新的即可。- 如果你使用的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.io
、docker-ce-cli
、docker-ce-selinux
和docker-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]