[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,代表最新版本的镜像
相关推荐
Harbor Lau33 分钟前
Linux常用中间件命令大全
linux·运维·中间件
漫谈网络1 小时前
基于 Netmiko 的网络设备自动化操作
运维·自动化·netdevops·netmiko
꧁坚持很酷꧂1 小时前
Linux Ubuntu18.04下安装Qt Craeator 5.12.9(图文详解)
linux·运维·qt
时迁2471 小时前
【k8s】k8s是怎么实现自动扩缩的
云原生·容器·kubernetes·k8s
小诸葛的博客3 小时前
详解Linux中的定时任务管理工具crond
linux·运维·chrome
一默19913 小时前
CentOS 7.9升级OpenSSH到9.9p2
linux·运维·centos
BranH4 小时前
Linux系统中命令设定临时IP
linux·运维·服务器
极小狐4 小时前
极狐GitLab 项目功能和权限解读
运维·git·安全·gitlab·极狐gitlab
宁酱醇4 小时前
GitLab_密钥生成(SSH-key)
运维·ssh·gitlab
秋风起,再归来~4 小时前
【Linux庖丁解牛】—进程优先级!
linux·运维·服务器