Docker安装&镜像优化

本文详细介绍了Docker的安装过程,探讨了如何通过docker commit构建镜像及Dockerfile的使用。强调了镜像优化的重要性,如选择精简基础镜像、减少层数、清理中间产物。此外,还涵盖了容器的运行、镜像仓库如DockerHub的使用,以及搭建私有仓库Registry,包括添加证书加密和认证功能。最后提到了docker-compose和Harbor的部署。
摘要由CSDN通过智能技术生成

需要使用红帽7.5版本以上的镜像构建的虚拟机

docker安装

 阿里云开源镜像站:https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/
 官方站点:https://docs.docker.com/ https://docs.docker.com/install/linux/docker-ce/centos/

安装

yum install bash-* -y
yum install *.rpm

在这里插入图片描述

安装完docker后如果 发现tab命令不能补全 是因为缺少一个包 yum install bash-* -y

安装一个小游戏

docker load -i game2048.tar 
docker run -d --name game1 -p 80:80 game2048
docker ps
在浏览器中测试:ip地址 eg:网页游戏

解决“警告”问题:

docker info
可以看到
WARNING: IPv4 forwarding is disabled
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

cd /etc/sysctl.d
 过滤内核参数 将这些改成 1
sysctl -a | grep forwarding
sysctl -a | grep bridge

cd /etc/sysctl.d/
vim docker.conf
inet.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.all.mc_forwarding = 1
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.mc_forwarding = 1
net.ipv4.conf.docker0.forwarding = 1
net.ipv4.conf.docker0.mc_forwarding = 1
net.ipv4.conf.eth0.forwarding = 1
net.ipv4.conf.eth0.mc_forwarding = 1
net.ipv4.conf.lo.forwarding = 1
net.ipv4.conf.lo.mc_forwarding = 1
net.bridge.bridge-nf-call-ip6tables = 1

sysctl --system #使其立即生效
docker命令
docker load -i ubuntu.tar 导入镜像(以ubuntu镜像为模板)
docker run -it --name vm1 ubuntu 创建容器(以ubuntu镜像为模板)
docker ps 查看容器状态,当前活跃的
docker ps -a 查看容器状态(包括不活跃的容器),所有的
docker attach vm1 连接容器
docker top vm1 查看容器进程
docker logs vm1 查看容器指令输出 -f 参数可以实时查看
docker inspect vm1 查看容器详情
docker stats vm1 查看容器资源使用率
docker diff vm1 查看容器修改
docker stop vm1 停止容器
docker start vm1 启动容器
docker kill vm1 强制干掉容器
docker restart vm1 重启容器
docker pause/unpause vm1 暂停/恢复容器
docker rm vm1 删除容器
docker rm -f vm1 强制删除容器
docker rmi ubantu 删除镜像
docker images 列出镜像
docker run 参数
-a stdin 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d 后台运行容器,并返回容器ID;
-i 以交互模式运行容器,通常与 -t 同时使用;
-P 随机端口映射,容器内部端口随机映射到主机的端口
-p 指定端口映射,格式为:主机(宿主)端口:容器端口
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–name=“nginx-lb” 为容器指定一个名称;
–dns 8.8.8.8 指定容器使用的DNS服务器,默认和宿主一致;
–dns-search example.com 指定容器DNS搜索域名,默认和宿主一致;
-h “mars” 指定容器的hostname;
-e username=“ritchie” 设置环境变量;
–env-file=[] 从指定文件读入环境变量;
–cpuset=“0-2” or --cpuset=“0,1,2” 绑定容器到指定CPU运行;
-m 设置容器使用内存最大值;
–net=“bridge” 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
–link=[] 添加链接到另一个容器;
–expose=[] 开放一个端口或一组端口;
–volume , -v 绑定一个卷

docker镜像&容器

镜像是一种文件结构,包含如何运行容器的元数据 Dockerfile中的每条命令都会在文件系统中创建一个新的层次结构
文件系统在这些层次上构建起来,镜像就构建于这些联合的文件系统之上 当容器启动后,所有镜像都会统一合并到一个进程中
联合文件系统中的文件被删除时, 它们只是被标记为已删除,但实际上仍然存在
镜像是docker容器的基石,容器是镜像的运行实例,有了镜像才能启动容器

docker images rhel7
docker run -it --name vm1 ubuntu #run:创建并运行一个容器 
-it:以交互式的形式 --name:给容器起个名字 ubuntu:镜像名称
docker ps -a  查看镜像
docker rm b16f9eaab99e  删除镜像,后面加镜像ID

docker commit 构建镜像

运行容器
修改容器
将容器保存为新的镜像

缺点
效率低 可重复性弱 容易出错 使
用者无法对镜像进行审计,存在安全隐患


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值