CentOS7安装Docker

  Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。
  社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。
  社区版按照stable和edge两种方式发布,每个季度更新stable版本,如18.01,18.09;每个月份更新edge版本,如18.01,18.02。

  Docker支持以下的CentOS版本:
  在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
  在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

一、安装docker

  1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

  $ uname -r #查看内核版本

  2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

  $ sudo yum update

  3、卸载旧版本(如果安装过旧版本的话)

  $ sudo yum remove docker docker-common docker-selinux docker-engine
  $ sudo yum remove docker docker-client docker-client-latest docker-common \
  docker-latest docker-latest-logrotate docker-logrotate \
  docker-selinux docker-engine-selinux docker-engine

  4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

  $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

  5、设置yum源 (阿里:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo )

  $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  6、可以查看所有仓库中所有docker版本,并选择特定版本安装
  $ yum list docker-ce --showduplicates | sort -r

  7、安装docker

  $ sudo yum install docker-ce      #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.12.0
  $ sudo yum install docker-ce-<VERSION STRING>      # 例如:sudo yum install docker-ce-18.12.0.ce

  8、启动Docker
  $ sudo systemctl start docker

  9、启动并加入开机启动

  $ sudo systemctl start docker
  $ sudo systemctl enable docker

  10、docker通过运行hello-world 映像验证是否已正确安装。
  $ sudo docker run hello-world

  11、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
  $ docker version

  12、卸载Docker包
  $ sudo yum remove docker-ce

  13、主机上的图像,容器,卷或自定义配置文件不会自动删除。要手动删除所有图像,容器和卷
  $ sudo rm -rf /var/lib/docker

  14、Docker常用命令

$docker images            #查看docker上的镜像
$docker search mysql      #查找镜像
$docker pull mysql:5.7.24   #拉取镜像, 官网:https://hub.docker.com/
$docker run -d -p 16888:80 --name test_name mysql #运行镜像指定映射端口
$docker start/stop/restart/rm dck_name #启动/停止/重启/上次容器
$docker ps [-l/a]     #查看docker容器[最新/所有]程序
$docker port dck_name     #查看容器端口
$docker top dck_name     #查看容器进程
$docker exec -it mysqldb /bin/bash       #进入容器shell命令窗口,后缀可以是 /bin/sh /bin/bash bash 
$docker logs -f -t --tail 100 mysqldb    #查看容器日志
$docker inspect dck_name   #查看容器配置信息
$docker stats [--no-stream] #显示容器使用的系统资源
$docker rmi image_id       #删除镜像
$docker rm image_id         #删除容器
$docker save [options] images [images...]
$docker save [-o/>] docker-redis.tar docker.io/redis     #备份镜像文件
$docker load [options]
$docker load [-i/<] docker-redis.tar     #加载镜像文件
$docker export [options] container     #导出小文件
$docker export -o source.tar target     #source.tar为目标文件,target是源容器名
$docker import [options] file|URL|- [REPOSITORY[:TAG]] #导入小文件
$docker import -o source.tar target     #source.tar为源文件,target是目标容器名
$docker run -d -it -p 8080:9090 --name container_name image_id #创建容器并端口映射
$docker cp opt/test/ container_name:/usr/local/   #拷贝系统文件到docker容器内
$docker cp container_name:/usr/local/ opt/test/   #拷贝docker容器内文件到系统
$docker raname oldName newName     #更改容器名字
$docker ps -a --no-trunc       #查看docker启动命令

  

  15、修改映射端口

  $docker ps -a #查看所有容器信息
  $docker stop image_name #停止容器运行
  $vim /var/lib/docker/containers/{container_id}/hostconfig.json #修改容器映射端口
  $service docker restart #重启docker
  $docker start image_name #启动容器

  run参数:--restart [no/on-failure/unless-stopped/always] #设置容器随docker启动
    no 不自动重启容器(默认值)
    on-failure 如果容器由于错误而退出,则将其重新启动,非零退出代码表示错误
    unless-stopped 重新启动容器,除非明确停止容器或者 Docker 被停止或重新启动
    always 只要容器停止了,就重新启动

  #容器挂载jar包运行(--net=host 使用host模式的容器可以直接使用宿主机的IP地址与外界通信)

  #docker run -tid --name container_name --net=host -v $PWD/test.jar:/usr/test.jar java:8u111 java -jar /usr/test.jar
  #docker run -tid --name container_name -p 8081:8080 -v $PWD/test.jar:/usr/test.jar java:8u111 java -jar /usr/test.jar

Docker安装mysql服务

  使用docker官方镜像安装mysql服务

  1.拉取mysql镜像,采用网易加速地址

  #docker pull hub.c.163.com/library/mysql:5.7
  #docker pull mysql #拉取默认镜像

  重命名镜像名

  #docker tag hub.c.163.com/library/mysql:5.7 mysql:5.7

  2.启动MySQL实例

  #docker run --name mysqldb -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

  查看MySQL实例
  #docker ps

  3.创建用于挂载的目录

  #sudo mkdir /data/mysql/datadir      #用于挂载mysql数据文件
  #sudo mkdir /data/mysql/conf.d      #用于挂载mysql配置文件
  #sudo chown docker:docker /mysql    #修改/mysql目录拥有者

  4.使用镜像创建容器

  #docker run --name mysqldb -p 3306:3306 -v /data/mysql/datadir:/var/lib/mysql -v /data/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
    命令解析:
    --name:容器名
    -p:映射宿主主机端口
    -v:挂载宿主目录到容器目录
    -e:设置环境变量,此处指定root密码
    -d:后台运行容器

  5 测试是否成功

  mysql -h192.168.1.101 -p3306 -uroot -p123456

  连接MySQL
  #docker run --name mysqldb --link mysqldb:mysql -d application-that-uses-mysql
  #docker run -it --link mysqldb:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

  在Shell中访问容器及日志查看

  $docker exec -it mysqldb /bin/bash     #进入容器shell命令窗口,后缀可以是 /bin/sh /bin/bash bash 
  $docker logs -f -t --tail 100 mysqldb     #查看容器日志

  启动容器通过参数的形式将配置传递给mysqld

  $docker run --name mysqldb -p 3306:3306 -v /data/mysql/datadir:/var/lib/mysql -v /data/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

环境变量参数:
MYSQL_ROOT_PASSWORD:必须。用于设置MySQLroot用户的密码
MYSQL_DATABASE:可选。用于指定镜像启动容器时要创建的数据库。如果提供了用户/密码,则会将该用户做为此数据库的超级用户。
MYSQL_USER,MYSQL_PASSWORD:可选。用于创建一个新用户并设置密码。
MYSQL_ALLOW_EMPTY_PASSWORD:可选。设置为yes时,则可以使用空密码登录
MYSQL_RANDOM_ROOT_PASSWORD:可选。设置为yes时会为root用户设置一个随机密码(使用pwgen),所生成的随机密码会被输出到stdout
MYSQL_ONETIME_PASSWORD:可选。为root用户指定一个一次性密码,该密码会在用户首次登录时强制修改

  数据存储
  在使用 mysql镜像创建MySQL容器时,数据库数据存储可能会有以下两种方式:
  数据卷容器:使用Docker默认的数据管理方式来管理数据库的数据存储,在这种方式下,数据库文件会被写入容器的内部。这种方式对于用户非常简单,缺点是很在宿主机上找到所存储的数据。
  外部数据卷:在宿主机创建一个数据目录,再将数据目录挂载到容器内部。这种方式可以很方便的在宿主机上找到并进行数据管理,但需要确保数据目录的存在。

  $docker run --name mysqldb -v /data/mysql/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:tag
  其中, -v /data/mysql/datadir:/var/lib/mysql是数据卷的挂载,表示将宿主机的/data/mysql/datadir目录挂载到容器内的/var/lib/mysql目录

  数据库备份

  $docker exec mysqldb sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /data/mysql/backup/all-databases.sql

创建Redis

  #docker run -d -p 6379:6379 -v $PWD/conf/redis.conf:/usr/local/etc/redis/redis.conf -v $PWD/data:/data --name docker-redis redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
  #docker exec -it docker-redis redis-cli               #使用redis镜像执行redis-cli命令连接到刚启动的容器
  #docker exec -it docker-redis redis-cli -h 192.168.1.100 -p 6379 -a pwd   #连接远程,如果有密码 使用 -a参数

Docker安装tomcat

  $docker search tomcat      #查找tomcat镜像
  $docker pull tomcat       #拉取官方的镜像
  $docker images|grep tomcat    #查看镜像列表

  运行test_name容器,挂载webapps目录

  $sudo docker run -d --name test_name -p 8081:8080 -v $PWD/webapps/:/usr/local/tomcat/webapps/ tomcat

Docker部署RabbitMQ

  $docker search rabbitmq:3-management      #查询镜像
  $docker pull rabbitmq:3-management        #获取镜像

运行镜像(默认账户密码guest)

$docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management

指定用户名(admin)和密码(123456)运行镜像
$docker run -d --hostname my-rabbit --name rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_$PASS=123456 rabbitmq:3-management

指定用户名(admin)和密码(123456),挂载data目录运行镜像
$docker run -d --hostname my-rabbit --name rabbitmq -p 5672:5672 -p 15672:15672 -v $PWD/data:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 rabbitmq:3-management

作者:Jason Zeng 于 2020-07-01
博客:http://www.cnblogs.com/zengming/
GItHub:https://github.com/lovelifeming
严正声明:
1.由于本博客部分资源来自互联网,版权均归原作者所有。转载的目的是用于学术交流与讨论学习,将不对任何资源负法律责任。
2.若无意中侵犯到您的版权利益,请来信联系我,我会在收到信息后会尽快给予处理!
3.所有资源内容仅供学习交流之用,请勿用作商业用途,谢谢。
4.如有转发请注明出处,来源于http://www.cnblogs.com/zengming/,谢谢合作。

Docker安装及使用,Docker 安装MySQL、安装Tomcat、安装RabbitMQ的更多相关文章

  1. 05006_Linux的jdk、mysql、tomcat安装

    1.软件包下载链接:软件包下载 密码:advk 2.安装JDK (1)查看当前Linux系统是否已经安装java,输入 rpm -qa | grep java : (2)卸载两个openJDK (3) ...

  2. Centos6.5安装Nmap、tcpdump、mysql、tomcat、靶场WAVSEP

    nmap安装 输入命令如下: yum install nmap 安装完成后,输入nmap -h看是否安装成功. 安装tcpdump 安装tcpdump必须的库: yum install flex yu ...

  3. 【原】无脑操作:Windows 10 + MySQL 5.5 安装使用及免安装使用

    本文介绍Windows 10环境下, MySQL 5.5的安装使用及免安装使用 资源下载: MySQL安装文件:http://download.csdn.net/detail/lf19820717/9 ...

  4. Redis学习(1)--环境配置,安装JDK,MySQL,tomcat

    Linux上安装jdk,mysql,tomcat安装 rpm命令: 相当于Windows的安装/卸载程序.可以进行程序的安装,更新,卸载,查看. 本地程序安装:rpm -ivh 程序名 本地程序查看: ...

  5. mysql安装与基本管理,mysql密码破解

    一.MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是 ...

  6. LinuxMint下JDK+Tomcat+Mysql+Eclipse javaEE安装

    网上查了很多方法,总结下比较简单的做法. 本人使用的系统版本为64位LinuxMint18,cinnamon桌面环境,预装Openjdk1.8.开发使用版本为oracle的1.7版本jdk. 1 jd ...

  7. mysql破解密码安装与基本管理

    一.MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是 ...

  8. MySQL介绍及安装&MySQL软件基本管理

    mysql介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好 ...

  9. linux mysql,tomcat与java的安装

    先将服务器的安全组设置为 把所有端口或者所需要的端口开放 然后测试远程访问 ssh 用户@ip                       登录 输入密码 service iptables stop  ...

  10. Nginx与Tomcat安装、配置与优化

    Nginx与Tomcat安装.配置与优化 Nginx与Tomcat安装.配置与优化 Nginx的安装与使用 Nginx是一款优秀的反向代理服务器 安装: rpm(或者是pkg安装),是预编译好的程序包 ...

随机推荐

  1. Spring Cloud的5大核心组件详解

    Spring Cloud Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而 ...

  2. w3cschool-Bootstrap 教程

    Bootstrap 简介 什么是 Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的 ...

  3. w3cschool-MyBatis 教程

    参考 https://www.w3cschool.cn/mybatis/mybatis-dyr53b5w.html MyBatis 入门 SqlSessionFactoryBuilder用 SqlSe ...

  4. RocketMQ原理—2.源码设计简单分析上

    大纲 1.NameServer的启动脚本 2.NameServer启动时会解析哪些配置 3.NameServer如何初始化Netty网络服务器 4.NameServer如何启动Netty网络服务器 5 ...

  5. CSP2024 to do list...

    马上 CSP 了,感觉得开始培养状态了. 哈希练习 Tarjan 初步学习+刷题 大模拟练习:鸭棋+猪国杀 S 组初赛,选择题部分,刷整卷至少 3 套. 树状数组练习:DX视频 线段树优化 dp 练习 ...

  6. 什么是token?token是用来干嘛的?

    从事计算机行业的朋友都听说过token这么个东西,尤其是deepseek爆火后api(大家都知道什么意思吧),但是其他行业的人就很少了解到token,下面就给大家来详细介绍一下token是什么意思?t ...

  7. 探秘Transformer系列之(3)---数据处理

    探秘Transformer系列之(3)---数据处理 接下来三篇偏重于工程,内容略少,大家可以当作甜点 _. 0x00 概要 有研究人员认为,大模型的认知框架看起来十分接近卡尔·弗里斯顿(Karl F ...

  8. 本地部署Grok2.0

    Grok-beta2.0(通过ChatBox实现) 个人使用: 1.注册登录 官方地址https://x.ai/ 2.创建API密钥 地址https://console.x.ai/ 3.登录githu ...

  9. MySQL - [17] Oracle、SQLServer、MySQL数据类型对比

    题记部分 一.数据类型对比 对应关系 (1)整数类型 Oracle的NUMBER(*,0) 对应 SQL Server的INT 和 MySQL的INT Oracle的BIGINT 可能需要映射到SQL ...

  10. Sqoop1的导入导出

    Sqoop1 和 Sqoop2 的区别 # 版本上 Sqoop1: 1.4.x Sqoop2: 1.99.x # 架构上 Sqoop1 使用 Sqoop客户端直接提交的方式(命令.将命令封装在脚本中) ...