CentOS安装Docker

2024-01-07 19:37:14

Docker安装

Docker简介

虚拟化容器技术,Docker基于镜像,可以秒级启动各种容器,每一种容器都是一个完整的运行环境,容器之间互相隔离。

Docker镜像仓库:Docker Hub Container Image Library | App Containerization

在这里插入图片描述

安装docker

Docker安装文档:Install Docker Engine on CentOS | Docker Docs

  1. 卸载系统中已存在docker

    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
  2. 安装Docker-CE

    • 安装必须的依赖

      sudo yum install -y yum-utils \
      				device-mapper-persistent-data \
      				lvm2
      
    • 设置docker repo的yum位置

      sudo yum-config-manager \
      			--add-repo \
      			https://download.docker.com/linux/centos/docker-ce.repo
      
    • 安装docker,以及docker-cli

      sudo yum install docker-ce docker-ce-cli containerd.io
      
    • 启动docker

      sudo systemctl start docker
      
    • 设置docker开机自启

      sudo systemctl enable docker
      
    • 测试docker常用命令,注意切换到root用户

      https://docs.docker.com/engine/reference/commandline/docker/

    • 配置docker镜像加速

      阿里云,容器镜像服务

      针对Docker客户端版本大于1.10.0的用户

      您可以通过修改daemon 配置文件/etc/docker/daemon.json 来使用加速器

      sudo mkdir -p /etc/docker
      sudo tee /etc/docker/daemon.json <<-'EOF'
      {
      	"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
      }
      EOF
      sudo systemctl daemon-reload
      sudo systemctl restart docker
      

docker安装mysql

  1. 下载镜像文件

    docker pull mysql:5.7
    docker images # 查看当前已存在镜像文件
    
  2. 创建实例并启动

    docker run -p 3306:3306 --name mysql \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/data:/var/lib/mysql \
    -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7
    

    参数说明:

    • -p 3306:3306:将容器的3306端口映射到主机的3306端口
    • –name mysql:指定运行容器的名称
    • -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂在到主机
    • -v /mydata/mysql/data:/var/lib/mysql:将数据文件夹挂在到主机
    • -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂在到主机
    • -e MYSQL_ROOT_PASSWORD=root:初始化root用户密码
    • -d mysql:5.7:-d后台运行,指定采用哪个镜像运行
    docker ps # 查看当前docker容器
    docker exec -it mysql /bin/bash # 进入容器文件系统(或者docker exec -it 容器id /bin/bash 其中容器id可由docker ps展示获得,同时id不必写全),-it表示以交互模式
    whereis mysql # 查看mysql安装目录位置
    exit # 退出容器
    

    docker容器文件挂载与端口映射

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. 修改msyql配置文件

    vi /mydata/mysql/conf/my.cnf
    

    文件内容,mysql默认使用拉丁编码,改为utf-8

    [client]
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    
  4. 重启msyql容器

    docker restart mysql
    

注意:解决MySQL连接慢问题

在配置文件中加入如下内容,并重启mysql

[mysqld]
skip-name-resolve

解释:skip-name-resolve:跳过域名解析

  1. 常用命令

    • 通过容器的mysql命令行工具连接

      docker exec -it mysql mysql -uroot -proot
      
    • 设置root远程访问

      grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
      flush privileges;
      
    • 进入容器文件系统

      docker exec -it mysql /bin/bash
      

docker安装redis

  1. 下载镜像文件

    docker pull redis # 此处视频采用版本为5.0.5,docker pull redis:5.0.5
    
  2. 创建实例并启动

    mkdir -p /mydata/redis/conf
    touch /mydata/redis/conf/redis.conf # 创建配置文件,否则挂载映射该文件时会报错
    docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
    	-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
    	-d redis redis-server /etc/redis/redis.conf
    
  3. redis 自描述文件:https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf

  4. 使用redis镜像执行redis-cli命令连接

    docker exec -it redis redis-cli
    
  5. 测试redis缓存

    set a b
    get a  # 获取到值为b
    exit   # 退出redis
    docker restart redis # 重启redis容器
    docker exec -it redis redis-cli # 连接redis客户端
    get a  # 谷粒学院视频采用redis5.0.5版本,获取不到值b,显示nil,而redis6以上版本默认持久化,可以正常显示
    

    redis5.0.5配置持久化

    vi /mydata/redis/conf/redis.conf
    

    添加如下内容

    appendonly yes
    

虚拟机关闭之后,docker容器也会随之关闭,下次重启虚拟机后,mysql和redis容器实际还存在,只是未运行

docker ps -a # 查看所有容器
docker start mysql # 启动mysql容器
docker start redis # 启动redis容器

文章来源:https://blog.csdn.net/weixin_56005963/article/details/135441097
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。