这里写自定义目录标题
一、docker的安装
1.1 下载Docker依赖的环境
想安装Docker,需要先将依赖的环境全部下载,就像Maven依赖JDK一样
yum -y install yum-utils device-mapper-persistent-data lvm2
1.2 指定Docker镜像源
默认下载Docker会去国外服务器下载,速度较慢,我们可以设置为阿里云镜像源,速度更快
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.3 安装Docker
依然采用yum的方式安装(docker-ce 社区版 而ee是企业版)
# 刷新存储库缓存
yum makecache
# 安装
yum -y install docker-ce
1.4 启动Docker并测试
安装成功后,需要手动启动,设置为开机自启,并测试一下Docker
# 启动Docker服务
systemctl start docker
# 设置开机自动启动
systemctl enable docker
# 测试
docker run hello-world
1.5 Docker帮助命令
# 显示Docker的版本信息
docker version
# 查看docker的系统信息,包括镜像和容器的数量
docker info
# Doctor的帮助命令
docker 命令 --help
二、docker的中央仓库
Docker官方的中央仓库:这个仓库是镜像最全的,但是下载速度较慢。
https://hub.docker.com/国内的镜像网站:网易蜂巢,daoCloud等,下载速度快,但是镜像相对不全。https://c.163yun.com/hub#/homehttp://hub.daocloud.io/ (推荐使用)在公司内部会采用私服的方式拉取镜像,需要添加配置,如下……
# registry-mirrors 是用来配置 Docker 镜像的镜像加速地址,它可以加速 Docker 镜像的拉取和推送。
在你的配置中,镜像加速地址是 https://registry.docker-cn.com,这意味着 Docker 将会使用该镜像
加速地址来加快镜像的访问速度。
# insecure-registries 是用来配置不安全的 Docker 仓库地址,如果你需要连接到一个没有经过认证的
Docker 仓库,就需要将其添加到这个列表中。在你的配置中,有一个名为 "ip:port" 的仓库被标记为不安
全的,这样 Docker 将允许不安全的通信与该仓库进行交互。
# ip和port是你公司内部的地址和端口号
# 需要创建/etc/docker/daemon.json,并添加如下内容
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["ip:port"]
}
# 重启两个服务
systemctl daemon-reload
systemctl restart docker
三、镜像的操作
3.1 拉取镜像
从中央仓库拉取镜像
docker pull 镜像名称
# 举例:docker pull daocloud.io/library/tomcat:8.5.15-jre8
3.2 查看镜像
查看本地已经安装过的镜像信息,包含标识,名称,版本,更新时间,大小
docker images
3.3 删除镜像
镜像会占用磁盘空间,可以直接删除,不能删除在运行中的镜像
docker rmi 镜像ID(IMAGE ID)
# 通过 docker images 命令,查看镜像可以得到镜像ID(IMAGE ID)
# 举例:docker rmi d2c94e258dcb
# d2c94e258dcb就是镜像ID,是我本机通过docker images 查看的hello-word镜像的镜像ID
3.4 镜像的导入导出【不规范】
镜像会占用磁盘空间,可以直接删除
# 将本地的镜像导出
docker save -o 导出的路径 镜像id
# 加载本地的镜像文件
docker load -i 镜像文件
# 修改镜像名称
docker tag 镜像id 新镜像名称:版本
四、容器操作
4.1 运行容器
运行容器需要制定具体镜像,如果镜像不存在,会直接下载
# 简单操作
docker run 镜像的标识|镜像名称[:tag]
# 常用的参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[:tag]
# -d:代表后台运行容器
# -p 宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
# --name 容器名称:指定容器的名称
4.2查看正在运行的容器
查看全部正在运行的容器信息
docker ps [-qa]
# -a:查看全部的容器,包括没有运行
# -q:只查看容器的标识
4.3查看容器日志
查看容器日志,以查看容器运行的信息
docker logs -f 容器id
# -f:可以滚动查看日志的最后几行
4.4进入容器内容部
可以进入容器内部进行操作
docker exec -it 容器id bash
4.5复制内容到容器
将宿主机的文件复制到容器内部的指定目录
docker cp 文件名称 容器id:容器内部路径
4.6重启&启动&停止&删除容器
容器的启动,停止,删除等操作,后续经常会使用到
# 重新启动容器
docker restart 容器id
# 启动停止运行的容器
docker start 容器id
# 停止指定的容器(删除容器前,需要先停止容器)
docker stop 容器id
# 停止全部容器
docker stop $(docker ps -qa)
# 删除指定容器
docker rm 容器id
# 删除全部容器
docker rm $(docker ps -qa)