[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,代表最新版本的镜像
相关推荐
安的列斯凯奇2 小时前
JavaRestClient 客户端初始化+索引库操作
运维·jenkins
淡黄的Cherry2 小时前
EFK采集k8s日志
云原生·容器·kubernetes
惟长堤一痕2 小时前
黑马linux入门笔记(01)初始Linux Linux基础命令 用户和权限 实用操作
linux·运维·笔记
飞花舞者2 小时前
nginx代理服务器配置不正确出现的小bug
运维·nginx·bug
ihengshuai2 小时前
Gitlab Runner安装与配置
前端·docker·云原生·gitlab·devops
CAD芯智库4 小时前
国产信创3D- 中望3D Linux 2025发布,助力企业高效转型国产三维CAD
linux·运维·3d
霍格沃兹测试开发学社测试人社区4 小时前
Jenkins质量门禁设计方案的深入探讨
运维·软件测试·测试开发·jenkins
李一帆'4 小时前
Windows安装Docker Desktop
windows·docker·容器
YoungerChina5 小时前
浏览器输入http形式网址后自动跳转https解决方法
运维
petunsecn5 小时前
Docker compose 使用 --force-recreate --no-recreate 控制重启容器时的行为
运维·docker·容器