[linux]docker快速入门

安装

docker官网: CentOS | Docker Docs

  • 准备工作: 准备ConstOS7的虚拟机环境
  • 账密: root/root
  • 飞书文档: Docs
  1. 卸载旧版本

    // 首先如果系统中已经存在旧的Docker,则先卸载
    yum remove docker
    docker-client
    docker-client-latest
    docker-common
    docker-latest
    docker-latest-logrotate
    docker-logrotate
    docker-engine

  • 注意,这些是一条指令

2.配置Docker的yum库

复制代码
// 首先要安装一个yum工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

// 安装成功后,执行命令,配置Docker的yum源:
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
// 更新为阿里云源
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

// 更新yum,建立缓存
sudo yum makecache fast

意外情况, 安装失败:

解决: 服务器连接不到网络,需要配置镜像源

复制代码
[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
  • i 进入插入模式, esc 退出插入模式, :wq保存并退出
  • 清理缓存, 重新安装

3.安装Docker

复制代码
// 执行命令,安装Docker
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • 查看版本: docker -v
  • 查看服务是否启动: docker images

4.启动和校验

复制代码
# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps
  • 先设置开启自启, 再启动, 再查看进程

5.配置镜像加速

镜像地址可能会变更,如果失效可以百度找最新的docker镜像。

配置镜像步骤如下:

复制代码
# 创建目录
mkdir -p /etc/docker

# 复制内容
tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://mirrors.tuna.tsinghua.edu.cn",
        "http://mirrors.sohu.com",
        "https://ustc-edu-cn.mirror.aliyuncs.com",
        "https://ccr.ccs.tencentyun.com",
        "https://docker.m.daocloud.io",
        "https://docker.awsl9527.cn"
    ]
}
EOF

# 重新加载配置
systemctl daemon-reload

# 重启Docker
systemctl restart docker

部署MySql

先停掉虚拟机中的MySQL,确保虚拟机已经安装Docker,且网络开通的情况下,执行下面命令安装MySQL

复制代码
docker run -d \
  --name mysql2 \
  -p 3307:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  mysql
  • / 只是换行的作用

执行过程

  • 查看是否启动成功: docker ps
  • 我已经关闭防火墙

连接mysql

镜像和容器

当我们利用Docker安装应用时,Docker会自动搜索并下载应用镜像(image)。

镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。

Docker会在运行镜像时创建一个隔离环境,称为容器(container)。

镜像仓库: 存储和管理镜像的平台,Docker官方维护了一个公共仓库: DockerHub.

  1. 我们输入命令, 会被docker服务监听到, 然后交给守护进程执行
  2. 如果需要下载镜像, 就会去镜像仓库下载
  3. 下载完成后, 就会运行镜像, docker会为运行的镜像创建容器, 这样就可以多实例部署, 互不干扰

命令解读

  • docker run: 创建并运行一个容器,-d是让容器在后台运行
  • --name mysql: 给容器起个名字,必须唯一
  • -p 3306:3306: 设置端口映射(宿主机端口:容器服务端口)
    • 宿主机对外可以访问, 但是容器服务是对外隔离的
    • 需要使用宿主机代理, 访问容器服务
  • -e KEY=VALUE: 是设置环境变量
    • 各软件启动需要设置的环境变量不同
    • 可以去镜像仓库, 查看镜像启动所需要的环境变量
  • mysql: 指定运行的镜像的名字
    • 镜像名称一般分两部分组成: [repository]:[tag]。
    • 其中repository就是镜像名, tag是镜像的版本
    • 在没有指定taq时,默认是latest,代表最新版本的镜像
相关推荐
ac.char2 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
罗不俷3 小时前
【RH134知识点问答题】第13章:运行容器
容器·rhel
中科米堆3 小时前
中科米堆CASAIM自动化三维测量设备测量汽车壳体直径尺寸
运维·自动化·汽车·视觉检测
缘华工业智维4 小时前
CNN 在故障诊断中的应用:原理、案例与优势
大数据·运维·cnn
开航母的李大5 小时前
软件系统运维常见问题
运维·服务器·系统架构·运维开发
AI大模型5 小时前
基于 Docker 的 LLaMA-Factory 全流程部署指南
docker·llm·llama
华强笔记6 小时前
Linux内存管理系统性总结
linux·运维·网络
tb_first7 小时前
k8sday11服务发现(2/2)
docker·云原生·容器·kubernetes·k8s
拾心217 小时前
【运维进阶】Ansible 角色管理
运维·ansible
phoenix09817 小时前
ansible部署lnmp-allinone
linux·运维·ansible