Docker全网最具体的安装步调及基本命令

打印 上一主题 下一主题

主题 846|帖子 846|积分 2538

第一部分  基础情况设置以及安部署

1. Linux基础设置

关闭SELinux

# 修改设置文件
  
  1. [root@Master ~]# SELINUX=disabled
复制代码
关闭防火墙

# 制止并禁用防火墙
  
  1. [root@Master ~]# systemctl stop firewalld
  2. [root@Master ~]# systemctl disable firewalld
复制代码
# 查看防火墙状态
  
  1. [root@Master ~]# sudo firewall-cmd --state
复制代码
安装Docker所需依赖

  
  1. [root@Master ~]# yum install wget yum-utils device-mapper-persistent-data lvm2 bridge-utils -y
复制代码
# 如果系统为9以上的版本,bridge-utils需要手动下载,安装
  
  1. # 说明:bridge-utils这个包是用来查看docker网络的
  2. [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以上的请跳过该步调
  
  1. [root@Master ~]# mv /etc/yum.repo.d/*.repo /media
  2. [root@Master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  3. [root@Master ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  4. [root@Master ~]# curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  5. [root@Master ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复制代码
替换为开源的(由于默认的docker是收费的,我们替换为社区免费版)

  
  1. [root@Master ~]# sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
复制代码
更新yum缓存并安装基础工具

  
  1. [root@Master ~]# yum clean all && yum makecache
  2. [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内核版本

  
  1. [root@Master ~]# uname -r
复制代码
开启流量转发

  
  1. [root@Master ~]# cat <<EOF > /etc/sysctl.d/docker.conf
  2. net.bridge.bridge-nf-call-ip6tables = 1
  3. net.bridge.bridge-nf-call-iptables = 1
  4. net.ipv4.conf.default.rp_filter = 0
  5. net.ipv4.conf.all.rp_filter = 0
  6. net.ipv4.ip_forward = 1
  7. EOF
复制代码
# 加载修改内核的参数
  
  1. [root@Master ~]# modprobe br_netfilter
  2. [root@Master ~]# sysctl -p /etc/sysctl.d/docker.conf
复制代码
3. 利用yum快速安装Docker

查看可用的Docker版本

  
  1. [root@Master ~]# yum list docker-ce --showduplicates | sort -r
复制代码
安装指定版本的Docker

  
  1. [root@Master ~]# yum install docker-ce-24.0.7 -y
复制代码
设置镜像加速器

  
  1. # 对于Docker客户端版本大于1.10.0的用户,可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
  2. [root@Master ~]# sudo mkdir -p /etc/docker
复制代码
  
  1. # 阿里云镜像加速器地址,从阿里云控制台获取
复制代码
  
  1. [root@Master ~]# sudo tee /etc/docker/daemon.json <<'EOF'
  2. {
  3.         "registry-mirrors": ["https://3544er7r.mirror.aliyuncs.com"]
  4. }
  5. EOF
复制代码
错误处置惩罚

# 如果遇到安装错误,请先卸载旧版本的Docker组件
  
  1. [root@Master ~]# yum remove -y docker \
  2. docker-client \
  3. docker-client-latest \
  4. docker-latest \
  5. docker-common \
  6. docker-latest-logrotate \
  7. docker-logrotate \
  8. docker-selinux \
  9. docker-engine-selinux \
  10. docker-engine
  11. # 删除所有旧的数据
  12. [root@Master ~]#rm -rf /var/lib/docker && rm -rf /usr/bin/docker
复制代码
4.安装 docker-compose

  
  1. # 建议提前下载,在线下载很慢
  2. [root@Master ~]# curl -L "https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-$(uname -s)-$(uname -m)"
  3. [root@Master ~]# cp docker-compose-linux-x86_64 docker-compose
  4. [root@Master ~]# chmod +x docker-compose
  5. [root@Master ~]# cp docker-compose /usr/local/bin && ln -s /usr/local/bin/docker-compose /usr/bin
复制代码
设置Docker开机自启动并重启服务

  
  1. [root@Master ~]# systemctl enable docker
  2. [root@Master ~]# systemctl restart docker
复制代码
查看Docker版本
  
  1. [root@Master ~]# docker version      # docker 详情
  2. [root@Master ~]# docker -v           # docker版本号
  3. [root@Master ~]# docker-compose -v   # docker-compose版本号
  4. Docker Compose version v2.27.1
复制代码
测试
  
  1. # 如果没有报错,证明安装成功
  2. [root@Master ~]# docker pull hello-world
  3. [root@Master ~]# docker images
复制代码
Docker服务的启停
  
  1. [root@Master ~]# sudo systemctl daemon-reload
  2. [root@Master ~]# sudo systemctl start docker   # 启动
  3. [root@Master ~]# sudo systemctl stop docker    # 停止
复制代码
第二部分 docker的具体使用

1.  镜像搜索、拉取、删除

  
  1. # 镜像仓库名/镜像名:标签 (注意:我们一般情况选择官方镜像OFFOCIAL【OK】的,在删除的时候尽量不要加-f参数,否则可能会把正在运行的容器给删掉)
  2. [root@Master ~]# docker search hello-world
  3. # docker search 参数介绍
  4.                 --limit 3:只查询前3条
  5.                 --no-trunc:完整的描述信息,如果描述信息过长,会用…展示
  6. [root@Master ~]# docker search hello-world --limit 3
  7. [root@Master ~]# docker search hello-world --limit 3 --no-trunc
  8. [root@Master ~]# docker pull hello-world  # 拉取镜像
  9. [root@Master ~]# docker images      # 查看已经拉取到的镜像
  10. [root@Master ~]# docker image list  # 查看已经拉取到的镜像
  11. [root@Master ~]# docker rmi hello-world         # 删除镜像
  12. [root@Master ~]# docker rmi -f $(docker ps -aq) # 批量删除镜像
复制代码
2.  容器命令的常见参数

  
  1. ├── 基本语法
  2. │   ├── IMAGE: 指定要使用的镜像
  3. │   ├── COMMAND: 覆盖镜像中的默认命令
  4. │   └── ARG...: 传递给命令的参数
  5. ├── 运行方式
  6. │   ├── -d: 后台运行容器
  7. │   ├── -i: 以交互模式运行容器
  8. │   └── -t: 为容器分配一个伪终端
  9. ├── 端口映射
  10. │   ├── -P: 随机端口映射
  11. │   └── -p: 指定端口映射
  12. ├── 容器命名
  13. │   └── --name: 为容器指定名称,标识容器,方便管理和操作
  14. ├── 容器管理
  15. │   ├── --rm: 容器停止后自动删除,自动清理容器,节省资源
  16. │   └── -v 或 -volume: 挂载主机目录到容器,数据持久化,挂载主机目录到容器
  17. ├── 网络配置
  18. │   └── -dns: 设置DNS服务器
  19. ├── 环境设置
  20. │   ├── -e: 设置环境变量
  21. │   └── -h: 指定容器hostname
  22. ├── 权限和性能
  23. │   ├── --privileged: 容器内使用真正root权限
  24. │   └── -u: 指定用户身份创建容器
  25. ├── 自动重启策略
  26. │   └── --restart: 设置容器自动重启策略
  27. ├── 其他选项
  28. ├── -link: 添加链接到其他容器
  29. ├── --expose: 开放一个端口或一组端口
  30. └── -it: 组合使用提供交互式体验
  31. # 例如:我们启动一个容器名称为nginx,端口映射为8080,80为容器端口,最后一个nginx为镜像名称
  32. [root@Master ~]# docker run -d --name nginx -p 8080:80 nginx
复制代码
3.  启动容器、关闭容器、删除容器

启动(注意:启动时,端口,容器别名不能重复)
  
  1. # 启动(后台)
  2. [root@Master ~]# docker run -d --name nginx -p 8080:80 nginx
  3. # 进入容器
  4. [root@Master ~]# docker exec -it nginx /bin/bash
  5. # 启动并进入容器
  6. [root@Master ~]# docker run -it --name nginx1 -p 80:80 nginx /bin/bash
复制代码
制止
  
  1. # 语法:docler stop/kill 运行时镜像别名/运行镜像的ID
  2. [root@Master ~]# docker stop nginx
  3. [root@Master ~]# docker kill nginx
复制代码
检查容器状态
  
  1. [root@Master ~]# docker ps -a   # 容器异常(命令错误或者容器已停止退出)
  2. [root@Master ~]# docker ps      # 正常运行的容器
复制代码
删除
  
  1. # 删除容器时,要么加-f强制删,要么先停止,再删除,否则会报错
  2. [root@Master ~]# docker rm nginx                                          # 不能删除正在运行的容器,建议这种方式
  3. [root@Master ~]# docker container prune -f  # 删除所有已退出的容器
  4. # 正式环境不允许,会把正在运行的容器给删除
  5. [root@Master ~]# docker rm -f nginx                                 # 不建议
复制代码
4.  批量删除

  
  1. # 批量删除容器
  2. [root@Master ~]# docker rm -f $(docker ps -aq)
  3. # 批量删除镜像
  4. [root@Master ~]# docker rmi -f $(docker images -q)
复制代码
5.  实行(运行nginx并访问)

  
  1. # 运行容器
  2. [root@Master ~]# docker run -d --name nginx -p 8090:80 nginx
  3. # 用浏览器访问测试
复制代码
6.  Docker 网络

  
  1. # Docker 默认会创建三块网卡,容器默认使用桥接模式
  2. [root@Master ~]# docker network ls  # 查看Docker虚拟网卡
  3. # 查看容器主机信息
  4. [root@Master ~]# docker exec -it nginx hostname -i
  5. [root@Master ~]# docker inspect nginx
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表