• 使用docker快速部署mysql容器


    使用docker快速部署mysql容器

    1. 安装docker

      # 安装Docker-CE
      yum install -y yum-utils device-mapper-persistent-data lvm2
      
      # 增加最新版本的Docker安装仓库
      yum-config-manager --add-repo 
              https://download.docker.com/linux/centos/docker-ce.repo
      
      # 安装Docker-CE版本
      sudo yum install -y docker-ce docker-ce-cli containerd.io
      
      # 允许开机启动
      sudo systemctl enable docker
      
      # 启动docker
      sudo systemctl start docker
      
    2. 下载mysql镜像文件

      # 查看所需镜像版本,这里是查看mysql 5.6版本
      # 默认会下载5.6里面最新的版本
      docker search mysql:5.6
      
      # 下载对应版本的mysql,是用mysql:版本号
      docker pull mysql:5.6
      
    3. 配置文件

      [client]
      default-character-set=utf8
      
      [mysqld]
      character-set-server=utf8
      default-storage-engine=INNODB
      collation-server=utf8_general_ci
      pid-file  = /var/run/mysqld/mysqld.pid
      socket   = /var/run/mysqld/mysqld.sock
      datadir   = /var/lib/mysql
      log-error = /var/log/mysql/error.log
      
      [mysql]
      default-character-set=utf8
      

      存放路径,可以自行修改,修改之后记得更改启动容器的路径参数

      /home/docker-conf/mysql/cnf/my.cnf

    4. 启动容器命令

      docker run -it 
      --name=mysql 
      # 如果更改了存放路径,记得修改下面的配置参数 
      -v /home/docker-conf/mysql/cnf/:/etc/mysql/conf.d 
      -v mysql_data:/var/lib/mysql 
      -e MYSQL_ROOT_PASSWORD='123456' 
      # --ip 127.0.0.1 
      -p 3306:3306 
      -d mysql:5.6 
      /bin/bash
      

      参数解读

      ​ --name 自定义名字,两个-

      ​ -v 文件挂载目录

      :前面的是宿主机的目录,后面则是容器的目录

      ​ -e 设置mysql的初始密码,不过貌似没什么用

      ​ -p 端口映射

      :前面的是映射到宿主机的端口,后面则是容器的端口

      ​ 比如mysql默认端口是3306,意思就是把mysql容器的3306端口映射到宿主机的3306端口,

      ​ 可以通过访问宿主机的3306端口访问到mysql容器

      ​ -d 表示后台运行

      ​ 后面的则是镜像名和版本号

    5. 进入容器内部

      docker attach mysql
      # 或者
      docker exec -it 容器名或者container ID
      
    • 执行mysql命令

      usermod -d /var/lib/mysql/ mysql
      
    • 启动mysql

      service mysql start 
      
    • 使用mysql

      mysql -uroot -p
      提示输入密码。直接回车.
      

    其他命令

    因为container ID是通过hash算法来实现的,所以正常情况下每个容器的ID都是唯一的,为了方便操作,取前几位就可以了,只要取的值和其他容器的相同个数的没有重复的即可

    # 比如
    container ID 		name   
    a12345				mysql01
    a11234				centos7.6                 
    b12345   		 mysql02
    b23456				centos6.8
    c23456    		redis                  
    
    # 可以这么来取
    docker start a12
    # 也可以这样
    docker start mysql01
    # 更简单的
    docker start c # 因为c开头的就一个
    
    • 查看正在运行的容器

      docker ps
      
    • 查看所有容器(包括没有运行的)

      docker ps -a
      
    • 启动容器

      docker start 容器名或container ID
      
    • 停止容器

      docker stop 容器名或container ID
      
    • 删除容器

      docker rm container ID
      # 注意:运行的容器一定要先stop,再rm
      
    • 查看镜像文件

      docker images
      
    docker run -d -p 127.0.0.1:9000:5000 
    # --link open_source_mysqldb:db 
    --name mysql 
    -v $PWD/srcpm:/opt/webapp/srcpm 
    -e DEV_DATABASE_URL='mysql://vuluser:vulpassword@db/vuldb' 
    -e SrcPM_CONFIG=development 
    -e MAIL_PASSWORD='xxxxxx' 
    daocloud.io/liusheng/vulpm_docker:latest 
    sh -c 'supervisord -c srcpm/supervisor.conf && supervisorctl -c srcpm/supervisor.conf start all && tail -f srcpm/log/gunicorn.err && tail -f srcpm/log/mail_sender.err'
    
  • 相关阅读:
    jQuery学习笔记----入门
    软件工程(第二周)
    软件工程(第一周)
    memcached 学习进修
    iis设置http重置到https
    apk的api级别不要低于26
    DDD 学习记录
    net core 随笔
    vs2017 无法提交到tfs的 git存储库
    nopcommerce 4.1 core 学习 增加商城配置属性
  • 原文地址:https://www.cnblogs.com/liuhuan086/p/12524969.html
Copyright © 2020-2023  润新知