Docker
搭建Docker环境
设置username
- hostnamectl set-hostname cxy && bash
关闭防火墙
- systemctl stop firewalld && systemctl disable firewalld
关闭iptables防火墙
- 先安装 yum install iptables-services -y
- 关闭 service iptables stop && systemctl disable iptables
- 清空防火墙规则 iptables -F
关闭selinux
- setenforce 0
- vim /etc/selinux/config
- SELINUX=disabled
getenforce 指令查看是为disabled 否则请重启机器
配置时间同步
-
yum install -y ntp ntpdate
-
ntpdate cn.pool.ntp.org[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jFrxyW60-1675393806971)(/Users/mac/Library/Application Support/typora-user-images/截屏2022-09-13 下午8.42.56.png)]
-
守护进程 systemctl restart crond
下载docker以及需要的包
-
# yum install -y wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vimncurses-devel autoconf automake zlib-develpython-devel epel-release openssh-serversocatipvsadm conntrac[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zVldAqT1-1675393806975)(/Users/mac/Library/Application Support/typora-user-images/截屏2022-09-13 下午8.56.48.png)]
-
配置docker-ce 的阿里云镜像源 yum-config-manager --add-repo https://mirrors.aliyun.com/repo/epel-7.repo[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dIc2JETk-1675393806975)(/Users/mac/Library/Application Support/typora-user-images/截屏2022-09-13 下午9.01.00.png)]
-
下载docker依赖包
-
yum install -y yum-utils device-mapper-persistent-data lvm2
-
下载docker
-
yum install docker-ce -y
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce-20.10.6 docker-ce-cli-20-10-6 containerd.io -y
# Step 4: 开启Docker服务
sudo service docker start
# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
启动docker
systemctl start docker && systemctl enable docker
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nw7HWN51-1675393806979)(/Users/mac/Library/Application Support/typora-user-images/截屏2022-09-13 下午10.31.22.png)]
查看状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O9AnkMef-1675393806981)(/Users/mac/Library/Application Support/typora-user-images/截屏2022-09-13 下午10.33.23.png)]
开启包转发功能和修改内核参数内核参数修改:br_netfilter模块用于将桥接流量转发至iptables链,br_netfilter内核参数需要开启转发。
- modprobe br_netfilter
vim /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
重新加载
- sysctl -p /etc/sysctl.d/docker.conf
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9stif92N-1675393806982)(/Users/mac/Library/Application Support/typora-user-images/截屏2022-09-13 下午10.42.33.png)]
检验该模块是否成功
- lsmod | grep br_netfilter
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BIh7VDl0-1675393806983)(/Users/mac/Library/Application Support/typora-user-images/截屏2022-09-13 下午10.45.06.png)]
- vim /etc/rc.sysinit
#!/bin/bash
for file in /etc/sysconfig/modules/*.modules ; do
[ -x $file ] && $file
done
-
vim /etc/sysconfig/modules/br_netfilter.modules
-
modprobe br_netfilter
-
给予权限 chmod +755 /etc/sysconfig/modules/br_netfilter.modules
配置加速器
- vim /etc/docker/daemon.json
{"registry-mirrors": ["https://y8y6vosv.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"]}
- 重新加载
- systemctl daemon-reload
- systemctl restart docker
Docker 笔记
docker search 镜像名 搜索镜像
docker pull 镜像名 拉取镜像 默认latest
docker rmi 容器名 删除容器
docker save -o 压缩包名.tar.gz 容器名 将镜像打包成zip文件
docker load -i 压缩包名 解压一个容器
docker run -itd 容器id /bin/bash 参数i交互式 t分配一个终端 d后端运行 运行一个镜像
docker ps 获取正在进行的镜像
docker stop 停止进行中容器
docker start 启动已停止的容器
docker logs 查看日志
docker rm 删除镜像
Dockerfile
From centos //基础镜像
MAINTAINER LSR. //记录作者名
Run //在构建镜像的时候 执行的指令 可以为多条
Copy //复制一个文件到容器里面
ADD // 复制一个文件到容器里面 如果为压缩包 就解压
Expose //暴露的端口
CMD //镜像构建完执行的指令 只能有一条
ENTRYPOINT [] //镜像构建完执行的指令 只能有一条
VOLUME //挂载数据 在docker run的时候通过-v来实现修改挂载点
Workdir //指定工作目录
Env //设置环境变量
User //是用来指定后续的用户以及用户组
ONBUILD //在构建镜像时命令不会执行 在以该镜像为基础时候才会执行
HEALTHCHECK //健康检查
ARG //跟env一样配置环境 只不过设置的环境配料仅对dockerfie有效 构建好的镜像不存在该此环境结构
-
写Docker 镜像的时候centos的源用不了 需要改
RUN rm -rf /etc/yum.repos.d/* COPY Centos-vault-8.5.2111.repo /etc/yum.repos.d/
docker实现数据卷的挂载
docker run -v 文件夹:文件夹 ➕容器名
// 实现容器卷的挂载
docker run --volumes-from +加挂载的数据卷
yum install bridge-utils -y
- 下载网桥工具
docker开启特权模式 --privileged
docker 的网络通信
- none 当net为none的时候只有io地址 没有网卡
- container 与已经存在的容器共享网络名称
- Bridge 桥接模式 自动分网络ip
- host 共享宿主机网络
docker cpu
- 在启动容器的时候 --cpu-shares 512 控制cpu分配权额
- –cpuset-cpus 0,1 这条指令是运行在cup0,1两个核
docker容器启动的怎么限制内存
- 使用-m参数来控制允许使用内存上限 -m 128m 最大为128m
限制docker容器读写速度
- –device-write-bps /dev/sda:2mb
当docker容器跑完就想删除的话 自动释放资源
- –rm