阿里云官方镜像站:
https://developer.aliyun.com/mirror/?utm_content=g_1000303593
一、容器简介 docker是管理容器的引擎。
docker为应用打包、部署平台,而非单纯的虚拟化技术。
docker容器的优势:
对于开发人员:build once、run anywhere。
对于运维人员:configure once、run anything。
二、容器的部署 docker源:
[root@server1 yum.repos.d]# cat docker.repo
[docker]name=docker-cebaseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/gpgcheck=0 因为在安装docker-ce时有许多依赖性,都是centos源
我们在仓库源搭建centos源
curl -o /etc/yum.repos.d/centos-base.repo https://mirrors.aliyun.com/repo/centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/centos-base.repo
编辑centos仓库源:%s/$releasever/7/g
安装docker-ceyum install docker-ce -y
systemctl enable --now docker 此时执行docker info会报错
[root@server1 sysctl.d]# pwd/etc/sysctl.d[root@server1 sysctl.d]# cat docker.conf net.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-ip6tables = 1sysctl --system 这下就不会报错
三、docker镜像 1.镜像的分层结构 共享宿主机的kernel
base镜像提供的是最小的linux发行版
同一docker主机支持运行多种linux发行版
采用分层结构的最大好处是:共享资源
copy-on-write 可写容器层
容器层以下所有镜像层都是只读的
docker从上往下依次查找文件
容器层保存镜像变化的部分,并不会对镜像本身进行任何修改
一个镜像最多127层
2.镜像的构建 docker commit 构建新镜像三部曲
运行容器
修改容器
将容器保存为新的镜像
缺点:
效率低、可重复性弱、容易出错
使用者无法对镜像进行审计,存在安全隐患
docker commit -m “add files” demoo demo:v1
或创建一个dockerfile:
cat /root/docker
from busyboxrun touch file1run mkdir linux 构建镜像:
docker build -t demo:v1 .
查看镜像的分层结构:
[root@server11 docker]# docker history demo:v1image created created by size comment08d1b013dbd9 39 minutes ago /bin/sh -c mkdir westos 0b 655ad284a2b5 39 minutes ago /bin/sh -c touch file1 0b 59788edf1f3e 2 years ago /bin/sh -c #(nop) cmd [sh] 0b 2 years ago /bin/sh -c #(nop) add file:63eebd629a5f7558c… 1.15mb 四、dockerfile详解: dockerfile常用指令:
from 指定base镜像,如果本地不存在会从远程仓库下载。
maintainer 设置镜像的作者,比如用户邮箱等。
copy 把文件从build context复制到镜像
支持两种形式:copy src dest 和 copy [“src”, “dest”]
src必须指定build context中的文件或目录
add 用法与copy类似,不同的是src可以是归档压缩文件,文件会被自动解压到dest
env 设置环境变量,变量可以被后续的指令使用:
env hostname sevrer1.example.com
expose 如果容器中运行应用服务,可以把服务端口暴露出去:
expose 80
volume 申明数据卷,通常指定的是应用的数据挂在点:
volume [/var/www/html]
workdir 为run、cmd、entrypoint、add和copy指令设置镜像中的当前工作目录,如果目录不存在会自动创建。
run 在容器中运行命令并创建新的镜像层,常用于安装软件包:
run yum install -y vim
cmd 与 entrypoint 这两个指令都是用于设置容器启动后执行的命令,但cmd会被docker run后面的命令行覆盖,而entrypoint不会被忽略,一定会被执行。
docker run后面的参数可以传递给entrypoint指令当作参数。
dockerfile中只能指定一个entrypoint,如果指定了很多,只有最后一个有效。
cat /root/dockerfile
from demo:v1 在demo:v1的基础上run touch file3 建立file3copy index.html / 复制文件到容器里add test.tar.gz /mnt 加此压缩包到容器里的/mnt下env hostname server11 定义变量$hostname=server11expose 80 暴露80端口volume [/data] 再此目录里建立的文件,在/var/lib/docker/volumes/下的目录数据里有刚才新建的文件,如果再此目录建立文件,也会同步到容器里。docker build -t demo:v9 .[root@server11 docker]# docker run -it --rm demo:v9/ # lslinux data file1 home proc tmp westosredhat dev file2 index.html root usrbin etc file3 mnt sys var/ # envhostname=server11shlvl=1home=/rootterm=xtermpath=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binpwd=// # cd /mnt//mnt # lsetc
原文链接:https://blog.csdn.net/qq_49286390/article/details/113061723
ymf
谈一谈汽车电子系统的发和MEMS的技术
理解不同类型的时钟抖动
太阳能光伏产业2009十大事件
盘点天玑9000新技能的精彩时刻
ELIIY公司开始量产锂离子电池
Docker—简介与镜像用法
一种称为静态恶意软件当图像网络分析(STAMINA)的方法
如何挑把放心锁
广东联通携手华为打造出了全国首个5G多模一体化室内数字系统
台式拉力试验机的主要配置
stm32f407vet6原理介绍
孙立宁:医疗机器人的发展机遇、产业现状和未来
五百内哪款蓝牙耳机好?2022年五百内的蓝牙耳机推荐
区块链电子发票极速版可以给我们带来什么
前10月电子信息业增加值增长16%
35KV接地电阻柜在移动阿里巴巴项目中的应用
区块链技术带动新兴技术融合发展,助力转型价值互联网
机器人是怎样制造的
“注水”超级电池能让汽车跑3000公里
物联网解决方案选择数据库平台的四个步骤