20分钟搭建Docker环境(详细教程)

docker环境搭建

​ 官方文档地址:https://docs.docker.com/engine/install/centos/

​ 镜像安装包地址:https://hub.docker.com/

​ 安装环境:VM ,CentOS/7 ,桥接模式 (桥接模式搭建

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

1.卸载旧版本:

​ 较旧的Docker版本称为dockerdocker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
可能出现的问题:

​ 提示信息:admin is not in the sudoers file. This incident will be reported

​ 原因:装系统或者买服务器的时候没有将admin账号加入用户组,使用sudo命令的时候,出现这个情况。

解决办法:

1.切换到root用户下

$ su

接着输入root用户的密码:密码默认是不可见的,注意不要输错

2.添加sudo文件的写权限,命令是:

$ chmod u+w /etc/sudoers

3.编辑sudoers文件

$ vi /etc/sudoers

​ 找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
在这里插入图片描述

ps:这里说下你可以sudoers添加下面四行中任意一条
  you-user             ALL=(ALL)                ALL
  %you-user            ALL=(ALL)                ALL
  you-user             ALL=(ALL)                NOPASSWD: ALL
  %you-user            ALL=(ALL)                NOPASSWD: ALL

​ 第一行:允许用户you-user执行sudo命令(需要输入密码).
​ 第二行:允许用户组you-user里面的用户执行sudo命令(需要输入密码).
​ 第三行:允许用户you-user执行sudo命令,并且在执行的时候不输入密码.
​ 第四行:允许用户组you-user里面的用户执行sudo命令,并且在执行的时候不输入密码.

​ 添加完成后:按esc键推出 按:然后输入wq保存退出

4.撤销sudoers文件写权限,命令:

chmod u-w /etc/sudoers
2.使用存储库安装
设置存储库:

安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。

$ sudo yum install -y yum-utils

# 官方yum源
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
# 阿里云yum源
$ sudo yum-config-manager \
    --add-repo \
  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
缓存软件包信息(可选):

将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度

yum makecache fast
安装DOCKER引擎:

安装最新版本的Docker Engine和容器

$ sudo yum install docker-ce docker-ce-cli containerd.io
3.启动Docker
$ sudo systemctl start docker
4.测试是否成功

通过运行hello-world 映像来验证是否正确安装了Docker Engine 。

$ sudo docker run hello-world
5.设置开机自启
$ sudo systemctl enable docker
6.设置镜像加速器

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

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

$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
  {
    "registry-mirrors": ["https://7z4jy2c8.mirror.aliyuncs.com"]
  }
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
7.docker常用命令
  1. 查看版本号

    $ docker -v
    
  2. 查看镜像文件

    $ docker images
    
  3. 启动docker

    $ sudo systemctl start docker
    
  4. 查看启动进程

    $ docker ps
    
  5. 设置开机自启

    $ sudo systemctl enable docker
    
  6. 重启镜像文件

    $ docker restart mysql
    $ docker restart redis
    
  7. 设置docker镜像自动启动

    $ docker update redis --restart=always
    $ docker update mysql --restart=always
    
  8. 进入镜像内部控制台

    $ docker exec -it mysql /bin/bash
    
  9. 启动docker

    $ systemctl start docker
    
  10. 守护进程重启

    $ sudo systemctl daemon-reload
    
  11. 重启docker服务

    $ systemctl restart  docker
    
  12. 重启docker服务

    $ sudo service docker restart
    
  13. 关闭docker

    $ service docker stop
    
  14. 关闭docker

    $ systemctl stop docker 
    


安装MySQL

​ 安装了官方提供的5.7版本的MySQL数据库

1.下载MySQL镜像
$ sudo docker pull mysql:5.7
2.配置MySQL
$ 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

参数说明:

​ --name mysql:设置名字为mysql

​ -p 3306:3306:将容器的3306端口映射到主机的3306端口

​ -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用户的密码为root

​ -d mysql:5.7:后台方式运行镜像

挂载图:

docker容器文件挂载与端口映射
在这里插入图片描述

可能出的问题:

提示信息: [Warning] IPv4 forwarding is disabled. Networking will not work.

解决办法:

在docker的宿主机中更改以下

$ vi /usr/lib/sysctl.d/00-system.conf

添加如下信息:

net.ipv4.ip_forward=1

重启network服务

$ systemctl restart network
3.查看状态
# 查看镜像文件
$ docker images
# 查看启动进程
$ docker ps
# 查看对应镜像内部
$ docker exec -it mysql /bin/bash
# 进入镜像内部查看相关的文件夹
$ whereis mysql
# 退出镜像内部
$ exit
4.配置config文件
# 第一次创建配置文件
$ vi /mydata/mysql/conf/my.conf

添加如下配置信息

[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
collection-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

修改配置后需要重启MySQL

$ docker restart mysql

安装redis

1.下载redis
$ docker pull redis
2.创建实例并启动
# 默认没有这如下文件夹和文件,需要创建
$ mkdir -p /mydata/redis/conf
$ touch /mydata/redis/conf/redis.conf

#启动redis服务
$ 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

参数说明:

​ -p 6379:6379:端口映射

​ -v /mydata/redis/data:/data:将数据文件夹挂载到主机

​ -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf:将配置文件挂载到主机

​ -d redis redis-server /etc/redis/redis.conf:启动的时候redis-server 加载redis.conf配置文件

3.查看信息
$ docker ps
$ docker images
# 进入redis镜像控制台
$ docker exec -it redis/bash
# 启动redis客户端
$ docker exec -it redis redis-cli 
4.redis配置

redis默认是没有持久化的,数据都存在内存中,一旦重启数据就会丢失

在这里插入图片描述

配置持久化策略:

详细配置地址:https://redis.io/topics/config
详细配置我已经上传:redis.conf

$ vi /mydata/redis/conf/redis.conf

配置AOF持久化策略,添加如下信息:

appendonly yes

  • 11
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是基于Docker搭建多节点Hadoop集群的详细教程: 1. 安装DockerDocker Compose 首先您需要在每个节点上安装DockerDocker Compose。您可以使用以下命令来进行安装: ``` sudo apt-get update sudo apt-get install docker.io sudo systemctl start docker sudo systemctl enable docker sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` 2. 创建Docker镜像 在每个节点上,您需要创建一个Docker镜像。您可以使用以下命令来创建Docker镜像: ``` sudo docker pull sequenceiq/hadoop-docker:2.7.0 ``` 3. 创建Docker Compose文件 在每个节点上,您需要创建一个Docker Compose文件。您可以使用以下模板文件来创建Docker Compose文件: ``` version: '2.7' services: namenode: image: sequenceiq/hadoop-docker:2.7.0 container_name: namenode hostname: namenode ports: - "8088:8088" - "50070:50070" - "8020:8020" volumes: - ./hadoop:/opt/hadoop-2.7.0 environment: - CLUSTER_NAME=hadoop-cluster - NODE_TYPE=namenode datanode1: image: sequenceiq/hadoop-docker:2.7.0 container_name: datanode1 hostname: datanode1 ports: - "50075:50075" volumes: - ./hadoop:/opt/hadoop-2.7.0 environment: - CLUSTER_NAME=hadoop-cluster - NODE_TYPE=datanode datanode2: image: sequenceiq/hadoop-docker:2.7.0 container_name: datanode2 hostname: datanode2 ports: - "50075:50075" volumes: - ./hadoop:/opt/hadoop-2.7.0 environment: - CLUSTER_NAME=hadoop-cluster - NODE_TYPE=datanode ``` 在此文件中,您需要定义三个服务:namenode、datanode1、datanode2。您需要在每个服务中指定Docker镜像名称、容器名称、主机名、端口号、数据卷和环境变量。您需要将此文件保存为docker-compose.yml。 4. 启动集群 接下来,您需要在每个节点上使用以下命令来启动集群: ``` sudo docker-compose up -d ``` 这将启动集群并在后台运行。 5. 验证集群 最后,您需要验证Hadoop集群是否成功启动。您可以使用以下命令来验证: ``` sudo docker exec -it namenode bash hadoop fs -mkdir /test hadoop fs -ls / ``` 如果您在上述命令中看到/test目录,则表明您成功地启动了Hadoop集群。 希望这个教程对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值