第一部分 基础情况设置以及安部署
1. Linux基础设置
关闭SELinux
# 修改设置文件
- [root@Master ~]# SELINUX=disabled
复制代码 关闭防火墙
# 制止并禁用防火墙
- [root@Master ~]# systemctl stop firewalld
- [root@Master ~]# systemctl disable firewalld
复制代码 # 查看防火墙状态
- [root@Master ~]# sudo firewall-cmd --state
复制代码 安装Docker所需依赖
- [root@Master ~]# yum install wget yum-utils device-mapper-persistent-data lvm2 bridge-utils -y
复制代码 # 如果系统为9以上的版本,bridge-utils需要手动下载,安装
- # 说明:bridge-utils这个包是用来查看docker网络的
- [root@Master ~]# wget -O bridge-utils-1.7.1-3.el9.x86_64.rpm https://mirrors.aliyun.com/epel/9/Everything/x86_64/Packages/b/bridge-utils-1.7.1-3.el9.x86_64.rpm?spm=a2c6h.25603864.0.0.7ffe476dlMkW3E
复制代码 下载阿里云的软件源文件
# 请先备份系统默认yum源,如果是9以下的版本,注意替换数值,然后请执行如下命令,9以上的请跳过该步调
- [root@Master ~]# mv /etc/yum.repo.d/*.repo /media
- [root@Master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- [root@Master ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
- [root@Master ~]# curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- [root@Master ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复制代码 替换为开源的(由于默认的docker是收费的,我们替换为社区免费版)
- [root@Master ~]# sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
复制代码 更新yum缓存并安装基础工具
- [root@Master ~]# yum clean all && yum makecache
- [root@Master ~]# yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc ntpdate openldap-devel
复制代码 2. 开启Linux内核的流量转发功能
查看CentOS内核版本
- [root@Master ~]# uname -r
复制代码 开启流量转发
- [root@Master ~]# cat <<EOF > /etc/sysctl.d/docker.conf
- net.bridge.bridge-nf-call-ip6tables = 1
- net.bridge.bridge-nf-call-iptables = 1
- net.ipv4.conf.default.rp_filter = 0
- net.ipv4.conf.all.rp_filter = 0
- net.ipv4.ip_forward = 1
- EOF
复制代码 # 加载修改内核的参数
- [root@Master ~]# modprobe br_netfilter
- [root@Master ~]# sysctl -p /etc/sysctl.d/docker.conf
复制代码 3. 利用yum快速安装Docker
查看可用的Docker版本
- [root@Master ~]# yum list docker-ce --showduplicates | sort -r
复制代码 安装指定版本的Docker
- [root@Master ~]# yum install docker-ce-24.0.7 -y
复制代码 设置镜像加速器
- # 对于Docker客户端版本大于1.10.0的用户,可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
- [root@Master ~]# sudo mkdir -p /etc/docker
复制代码 - [root@Master ~]# sudo tee /etc/docker/daemon.json <<'EOF'
- {
- "registry-mirrors": ["https://3544er7r.mirror.aliyuncs.com"]
- }
- EOF
复制代码 错误处置惩罚
# 如果遇到安装错误,请先卸载旧版本的Docker组件
- [root@Master ~]# yum remove -y docker \
- docker-client \
- docker-client-latest \
- docker-latest \
- docker-common \
- docker-latest-logrotate \
- docker-logrotate \
- docker-selinux \
- docker-engine-selinux \
- docker-engine
- # 删除所有旧的数据
- [root@Master ~]#rm -rf /var/lib/docker && rm -rf /usr/bin/docker
复制代码 4.安装 docker-compose
- # 建议提前下载,在线下载很慢
- [root@Master ~]# curl -L "https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-$(uname -s)-$(uname -m)"
- [root@Master ~]# cp docker-compose-linux-x86_64 docker-compose
- [root@Master ~]# chmod +x docker-compose
- [root@Master ~]# cp docker-compose /usr/local/bin && ln -s /usr/local/bin/docker-compose /usr/bin
复制代码 设置Docker开机自启动并重启服务
- [root@Master ~]# systemctl enable docker
- [root@Master ~]# systemctl restart docker
复制代码 查看Docker版本
- [root@Master ~]# docker version # docker 详情
- [root@Master ~]# docker -v # docker版本号
- [root@Master ~]# docker-compose -v # docker-compose版本号
- Docker Compose version v2.27.1
复制代码 测试
- # 如果没有报错,证明安装成功
- [root@Master ~]# docker pull hello-world
- [root@Master ~]# docker images
复制代码 Docker服务的启停
- [root@Master ~]# sudo systemctl daemon-reload
- [root@Master ~]# sudo systemctl start docker # 启动
- [root@Master ~]# sudo systemctl stop docker # 停止
复制代码 第二部分 docker的具体使用
1. 镜像搜索、拉取、删除
- # 镜像仓库名/镜像名:标签 (注意:我们一般情况选择官方镜像OFFOCIAL【OK】的,在删除的时候尽量不要加-f参数,否则可能会把正在运行的容器给删掉)
- [root@Master ~]# docker search hello-world
- # docker search 参数介绍
- --limit 3:只查询前3条
- --no-trunc:完整的描述信息,如果描述信息过长,会用…展示
- [root@Master ~]# docker search hello-world --limit 3
- [root@Master ~]# docker search hello-world --limit 3 --no-trunc
- [root@Master ~]# docker pull hello-world # 拉取镜像
- [root@Master ~]# docker images # 查看已经拉取到的镜像
- [root@Master ~]# docker image list # 查看已经拉取到的镜像
- [root@Master ~]# docker rmi hello-world # 删除镜像
- [root@Master ~]# docker rmi -f $(docker ps -aq) # 批量删除镜像
复制代码 2. 容器命令的常见参数
- ├── 基本语法
- │ ├── IMAGE: 指定要使用的镜像
- │ ├── COMMAND: 覆盖镜像中的默认命令
- │ └── ARG...: 传递给命令的参数
- ├── 运行方式
- │ ├── -d: 后台运行容器
- │ ├── -i: 以交互模式运行容器
- │ └── -t: 为容器分配一个伪终端
- ├── 端口映射
- │ ├── -P: 随机端口映射
- │ └── -p: 指定端口映射
- ├── 容器命名
- │ └── --name: 为容器指定名称,标识容器,方便管理和操作
- ├── 容器管理
- │ ├── --rm: 容器停止后自动删除,自动清理容器,节省资源
- │ └── -v 或 -volume: 挂载主机目录到容器,数据持久化,挂载主机目录到容器
- ├── 网络配置
- │ └── -dns: 设置DNS服务器
- ├── 环境设置
- │ ├── -e: 设置环境变量
- │ └── -h: 指定容器hostname
- ├── 权限和性能
- │ ├── --privileged: 容器内使用真正root权限
- │ └── -u: 指定用户身份创建容器
- ├── 自动重启策略
- │ └── --restart: 设置容器自动重启策略
- ├── 其他选项
- ├── -link: 添加链接到其他容器
- ├── --expose: 开放一个端口或一组端口
- └── -it: 组合使用提供交互式体验
- # 例如:我们启动一个容器名称为nginx,端口映射为8080,80为容器端口,最后一个nginx为镜像名称
- [root@Master ~]# docker run -d --name nginx -p 8080:80 nginx
复制代码 3. 启动容器、关闭容器、删除容器
启动(注意:启动时,端口,容器别名不能重复)
- # 启动(后台)
- [root@Master ~]# docker run -d --name nginx -p 8080:80 nginx
- # 进入容器
- [root@Master ~]# docker exec -it nginx /bin/bash
- # 启动并进入容器
- [root@Master ~]# docker run -it --name nginx1 -p 80:80 nginx /bin/bash
复制代码 制止
- # 语法:docler stop/kill 运行时镜像别名/运行镜像的ID
- [root@Master ~]# docker stop nginx
- [root@Master ~]# docker kill nginx
复制代码 检查容器状态
- [root@Master ~]# docker ps -a # 容器异常(命令错误或者容器已停止退出)
- [root@Master ~]# docker ps # 正常运行的容器
复制代码 删除
- # 删除容器时,要么加-f强制删,要么先停止,再删除,否则会报错
- [root@Master ~]# docker rm nginx # 不能删除正在运行的容器,建议这种方式
- [root@Master ~]# docker container prune -f # 删除所有已退出的容器
- # 正式环境不允许,会把正在运行的容器给删除
- [root@Master ~]# docker rm -f nginx # 不建议
复制代码 4. 批量删除
- # 批量删除容器
- [root@Master ~]# docker rm -f $(docker ps -aq)
- # 批量删除镜像
- [root@Master ~]# docker rmi -f $(docker images -q)
复制代码 5. 实行(运行nginx并访问)
- # 运行容器
- [root@Master ~]# docker run -d --name nginx -p 8090:80 nginx
- # 用浏览器访问测试
复制代码 6. Docker 网络
- # Docker 默认会创建三块网卡,容器默认使用桥接模式
- [root@Master ~]# docker network ls # 查看Docker虚拟网卡
- # 查看容器主机信息
- [root@Master ~]# docker exec -it nginx hostname -i
- [root@Master ~]# docker inspect nginx
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |