一键安装docker和K8S
访问 https://kuboard.cn/install/install-k8s.html#%E5%AE%89%E8%A3%85docker%E5%8F%8Akubelet 确认并勾选7个复选框后,会出现一键安装自动脚步。复制并执行即可。
单独安装docker
安装别用“daocloud”的一键安装命令。他妈的不好使。
- 安装阿里的镜像源,否则太慢。执行以下命令安装镜像源。
1
2
3
4yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo - 直接执行
yum install docker-ce
即可安装。(docker-ce中的-ce
不能省略,否则会安装旧版本的docker-io
) - 安装完成后执行
docker -v
查看安装结果。
单独安装k8s
复制下面的命令,从阿里镜像源安装K8S
1 | cat <<EOF > /etc/yum.repos.d/kubernetes.repo |
靠谱镜像源
docker hub靠谱镜像源(gdam3l是个人的加速器)
修改镜像源请新建或修改 /etc/docker/daemon.json
文件(如果目录不存在,先建目录)
修改为如下
1 | { |
然后需重启docker,执行 systemctl restart docker
命令重启。
docker镜像的latest标签并不会自动更新,所以慎用,容易乱套。
制作镜像 commit export save
#通过dockerfiledocker build -t imageName:version .
如:docker build -t zuihou/oauth-server:2.4.c1 --build-arg JAR_FILE=zuihou2.4.c1.dev/zuihou-oauth-server.jar .
#将当前运行的容器制作成一个新的镜像(保留镜像层级历史记录,并将当前容器状态生成一个新的层级)docker commit containerID imageName:version
#将当前运行的容器导出为快照(丢失所有层级记录)docker export containerID > xxx_snapshot.tar
#将 export 的容器快照导入为新的镜像(新镜像启动容器时,命令最后必须加 /bin/bash)docker import xxx_snapshot.tar newImageName:version
启动时必须加 /bin/bash 如:docker run -d newImageName:version /bin/bash
#将某个镜像导出为压缩包(方便多个机器离网状态下的镜像复制)docker save imageName:version > xxx_image.tar
#将某个镜像压缩包导入为新镜像(可在机器离网状态下载入镜像)docker load < xxx_image.tar
docker save和docker export的区别
docker save保存的是镜像(image),docker export保存的是容器(container);
docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
docker export的包会比save的包要小,原因是save的是一个分层的文件系统,export导出的只是一个linux系统的文件目录。
更多镜像和容器的备份和迁移可参考: https://blog.csdn.net/qq_44895681/article/details/106100061
为镜像打一个新的TAG(可用来修改镜像名称或版本)
docker tag imageID newImageName:newTag
或docker tag sourceImage[:tag] newImageName[:newTag]
删除镜像的TAG
如果一个镜像设置错了tag可以用该命令删除错误的tag
docker rmi imageName:imageTag
删除镜像
docker rmi imageID
或docker rmi imageName:imageTag # 如果一个镜像设置错了tag可以用该命令删除错误的tag
查看docker占用的磁盘空间
docker system df
清理docker占用的磁盘空间
- 使用
docker system prune
命令
该指令默认会清除所有如下资源:
- 已停止的容器(container)
- 未被任何容器所使用的卷(volume)
- 未被任何容器所关联的网络(network)
- 所有悬空镜像(image)
该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
添加 -a 或 –all 参数后,可以一并清除所有未使用的镜像。
可以添加 -f 或 –force 参数用以忽略相关告警确认信息。
指令结尾处会显示总计清理释放的空间大小。
- 使用可视化管理工具
portainer
常用命令
1 | #查看所有容器ID |
docker-compose
1 | # 显示命令帮助 |
不同容器之间共享数据卷和共享网络
共享网络:
在compose文件中使用external属性,具体可参考官网文档。使用基本docker命令时,使用 –link,或提前创建网络,然后多个容器加入该网络。
共享数据卷:
在compose文件中使用external属性,具体可参考官网文档。使用基本docker命令时,可提前创建数据卷,然后多个容器映射该数据卷。
(完)