当前位置: 首页 > article >正文

[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,代表最新版本的镜像


http://www.kler.cn/a/378628.html

相关文章:

  • C++ 内存对齐:alignas 与 alignof
  • ChatGPT 和 RAG(检索增强生成)的区别;ChatGPT 和 RAG 的联系
  • 面试经典 150 题:189、383
  • 动手学深度学习65 注意力分数
  • 使用Python多线程抓取某图网数据并下载图片
  • OpenSLL下载,环境变量配置
  • 华为OD机试 - 连续天数的最高利润额 - 动态规划(Python/JS/C/C++ 2024 C卷 100分)
  • MySQL数据库的使用
  • C#结合JS解决Word添加无效位图导致进程停滞的问题
  • Mybatis Plus 自定义 SQL
  • 18 实战:基于Tkinter和OpenCV的视频编码器:实现MPEG4矩形帧编码器
  • leetcode 693.交替位二进制数
  • 【RabbitMQ】02-Spring AMQP
  • 文件夹无法访问?全面解析与高效恢复策略
  • 【自然资源】关于多测合一,你了解吗?
  • RSA算法:数字安全的基石
  • CentOS9 Stream上安装Edge浏览器
  • 微服务实战系列之玩转Docker(十八)
  • 【TabBar嵌套Navigation案例-常见问题按钮-WebView-加载网页 Objective-C语言】
  • 李红《复变函数与积分变换》第五版课后习题答案PDF
  • (实战)WebApi第9讲:EFCore性能优化(IQueryable延迟查询、取消跟踪机制)
  • 网络安全等级保护制度详解:一文掌握核心要点
  • webassembly.instance()调用模块中的函数及webassembly.Module.exports()查看模块中的成员或函数信息
  • 「Qt Widget中文示例指南」如何实现窗口嵌入?
  • SpringBoot源码解析(二):启动流程之引导上下文DefaultBootstrapContext
  • 用 css 实现空列表自动提示 “空状态”