前言
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本
uname -r
centos7.0版本
3.10.0-862.el7.x86_64
一 环境准备
1、虚拟机or物理机
2、centos7系统(稳定,对docker支持友好)
二 安装过程
1、准备工作
注:使用yum安装docler时候建议将源换成阿里的,避免出现某些包被墙或网络情况不好而导致安装失败的情况。
常见问题(如果没遇到,可直接忽略):
yum安装一直提示 “Another app is currently holding the yum lock; waiting for it to exit...”
解决办法:https://blog.csdn.net/weixin_37973929/article/details/85246422
2、开始安装
2.1 将yum源变更为阿里源
# 更换yum源 变成阿里源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.2 下载官方的repo
# 下载官方的 repo
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
2.3 替换地址
# 替换文件中的地址为清华大学的地址
sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
2.4 安装
# 安装docker-ce
yum install -y docker-ce
3 验证安装是否成功
# 查看 docker 版本
docker version
出现上图证明安装成功,但是未启动。接下来,我们启动docker进程,并设置开机自启动。
4 docker的常用命令
准备工作:docker 镜像加速
# 编辑文件/etc/docker/daemon.json,没有就新建。
# 添加如下内容
{
"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}
作用 | 命令 |
---|---|
查看docker版本 | docker version |
启动docker | systemctl start docker |
停止docker | sysytemctl stop docker |
重启docker | systemctl restart docker |
设置docker开机自启 | systemctl enable docker |
作用 | 命令 | 例 | 缩写 | 备注 |
---|---|---|---|---|
查看docker有哪些命令 | docker image | docker search jumpserver | ||
下载拉取镜像 | docker pull 镜像名字 | docker pull alpine 或 docker pull alpine:3.9 | 默认下载最近版本,也可以选择版本号下载 | |
查看本地已有镜像 | docker image ls | docker images | ||
上传镜像 | docker push | |||
导出镜像 | docker save 镜像名:版本 -o 自定义名字.tar.gz | docker save nginx:latest -o docker_nginx.tar.gz | 镜像都是压缩包文件,.tar.gz格式 | |
导入镜像 | docker load -i 自定义名字.tar.gz | docker load -i docker_nginx.tar.gz | ||
搜索镜像 | docker search 镜像名字 | |||
删除docker镜像 | docker image rm 镜像名:版本 | docker image rm nginx:latest | 运行中的镜像删除不掉 | |
给镜像打标签 | docker tag 镜像名字:版本 lidaxu:3.9 | docker tag alpine:3.9 lidaxu:3.9 | 给镜像起名字 |
作用 | 命令 | 例 | 缩写 | 备注 |
---|---|---|---|---|
查看正在运行的容器 | docker container ls | docker ps | ||
查看所有容器【包括运行和不运行】 | docker container ls --all | docker ps --all | ||
只显示最后一个容器 | docker container ls -a -l | |||
创建并启动一个nginx容器 | docker run -d -p 80:80 镜像名称:版本 | 提示:latest: Pulling from library/nginx #本地未发现镜像,自动从网上下载 分配一个可以交互式的终端,创建并启动,并进入容器 | ||
创建并启动一个镜像并命名 | docker run -it --name lidaxu 镜像名称:版本 | 分配一个可以交互式的终端,创建并启动,并进入容器 | ||
创建容器 | docker create 镜像名称:版本 | docker create centos:6.9 | ||
创建一个名字为lidaxu的容器 | docker create --name lidaxu centos:6.9 | |||
启动容器 | docker start 容器ID 或 名字 | |||
停止容器 | docker stop 容器ID 或 名字 | |||
重启容器 | docker restart 容器ID 或 名字 | |||
强制停止容器 | docker kill 容器ID 或 名字 | |||
删除容器 | docker rm 容器ID 或 名字 | |||
删除镜像 | docker rm 容器ID 或 名字 | |||
查看所有容器 | docker ps -a | |||
查看所有容器ID | docker ps -a -q | |||
杀所有容器 -f 强制删除 | docker rm 'docker ps -a -q' | |||
方式一:进入容器 | docker exec -it 容器ID/容器名字 /bin/bash | 分配一个独立终端 | ||
方式二:进入容器 | docker attach 容器ID/容器名字 | 画面 输入 输出全都同步。因为终端的TTY是同一个。ctrl+p\ctrl+q离开终端。 | ||
指定容器初始命令 | docker run 参数1 参数2 ... 镜像名称:版本 容器初始命令 | 没有指定容器的初始命令,会使用镜像默认的初始命令 | ||
系统装包 | centos yum debian apt-get Ubuntu apt-get alpine apk suse zypper | |||
注: | 只要是使用linux内核的系统都是linux系统 容器使用linux内核可以运行各种linux容器 | |||
注: | 容器的ID 和 名字(名字是随机的)都是唯一的 | |||
注: | 状态:Exited(退出) Created(创建未运行) UP 8 min (已运行8分钟) |