Centos7上安装docker

目录

1 检查系统内核

2 安装 Docker

2.1 安装

2.2 查看 docker 版本 

2.3 启动 docker 

3 建立 docker 用户和组 

3.1 创建用户和组 

3.2 使用新创建的用户运行helloword 

 3.3 解决报错

4 安装centos镜像 

4.1 下载镜像

4.2 查看拥有的镜像

4.3 运行容器

4.4 在容器中运行命令 

4.5 查看镜像、容器、数据卷所占用的空间

 5 运行容器

5.1 使用命令运行容器

 6 刚安装的系统非常纯净,需要安装必备的软件

6.1 安装 vim

6.2 升级及安装sshd 

6.2.1 安装

6.2.2 启动

6.3 修改root密码

6.4 宿主机能登录本机(容器中的主机)

6.5 配置ssh无密码登录

 7 上传软件到容器里面

7.1 安装JDK 

8 保存镜像 


1 检查系统内核

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

通过 uname -r 命令查看你当前的内核版本

uname -r

2 安装 Docker

2.1 安装

yum -y install docker

2.2 查看 docker 版本 

docker version

2.3 启动 docker 

service docker start
或者
systemctl start docker.service

3 建立 docker 用户和组 

3.1 创建用户和组 

默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

groupadd docker
useradd -g docker docker

 

3.2 使用新创建的用户运行helloword 

docker run hello-world

 3.3 解决报错

使用root用户输入以下命令:

vim /etc/sysconfig/docker

 在里面添加如下的内容,标蓝色部分:

重新启动docker
service docker restart

 重新以docker用户运行helloword

docker run hello-world

由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。

4 安装centos镜像 

4.1 下载镜像

从 Docker 镜像仓库获取镜像的命令是 docker pull。其命令格式为:

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 

可以直接使用docker pull centos:7命令安装镜像

docker pull centos:7

4.2 查看拥有的镜像

docker image ls

一个是centos镜像,另一个是我们之前使用docker run hello-world命令下载的镜像。

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

4.3 运行容器

 有了镜像后,我们就能够以这个镜像为基础启动并运行一个容器。

docker run -it --rm centos bash

 注意标红的颜色。

docker run 就是运行容器的命令,说明一下上面用到的参数。

  • -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因 此我们需要交互式终端。
  • --rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。
  • centos :这是指用centos  镜像为基础来启动容器。
  • bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash。

4.4 在容器中运行命令 

 

进入容器后,我们可以在 Shell 下操作,执行任何所需的命令。这里,我们执行了 cat /etc/os-release,这是 Linux 常用的查看当前系统版本的命令,从返回的结果可以看到容器内是 CentOS Linux 系统。
最后我们可以通过 exit 退出这个容器。 

4.5 查看镜像、容器、数据卷所占用的空间

docker system df

 

查看当前运行的容器

docker ps
docker ps -a    --查看所有容器,包括停止的

 5 运行容器

5.1 使用命令运行容器

docker run -it -v /home/docker/build:/root/build --privileged -h hadoop1 --name hadoop1 centos /bin/bash

 参数解释:

  • -v 表示基于容器的centos系统的/root/build目录与本地/home/hadoop/build共享;这可以很方便将本地文件上传到Docker内部的centos系统;
  • -h 指定主机名为hadoop1
  • –-name  指定容器名
  • /bin/bash  使用bash命令

如果运行出现如下错误,解决方法如下:

 6 刚安装的系统非常纯净,需要安装必备的软件

6.1 安装 vim

6.2 升级及安装sshd 

6.2.1 安装

[root@hadoop1 /]# yum -y update
[root@hadoop1 /]# yum -y install openssh-server
[root@hadoop1 /]# yum -y install openssh-clients

编辑sshd的配置文件/etc/ssh/sshd_config,将其中的UsePAM yes改为UsePAM no

vim /etc/ssh/sshd_config 

6.2.2 启动

/usr/sbin/sshd -D

报错的解决方案为:创建公私密钥,输入命令后,直接按两次enter键确认就行了。

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key 

ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key

 ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

 

再次启动SSH服务

/usr/sbin/sshd -D &

 

 

yum -y install lsof
lsof -i:22

6.3 修改root密码

在这里,我修改的密码是:hadoop1

测试

ssh localhost

 

上图中可以看到已经登录到本机了,也就说容器中的主机拥有了ssh远程登录其它主机的能力,当然你也可以登录其他主机。要退出的话,输入命令exit即可。

6.4 宿主机能登录本机(容器中的主机)

vi /etc/hosts

 

得到容器中的主机的ip地址172.17.0.2 

然后在宿主机中开启一个新的终端输入命令

ssh root@172.17.0.2

6.5 配置ssh无密码登录

 ssh-keygen -t rsa

[root@hadoop1 ~]# cd .ssh/
[root@hadoop1 .ssh]# cat id_rsa.pub >> authorized_keys
输入完后,这时再输入命令

[root@hadoop1 .ssh]# ssh localhost

 

 7 上传软件到容器里面

将JDK上传到Linux系统,,然后将其移动到/home/docker/build文件夹下面,注意:这里需要使用root用户

[root@localhost docker]# mv jdk-8u73-linux-x64.tar.gz build/

7.1 安装JDK 

在容器/root下面建一个apps文件夹

 mkdir apps

解压JDK的安装包到apps文件夹下面
[root@hadoop1 build]# tar -zxvf jdk-8u73-linux-x64.tar.gz -C /root/apps/

修改环境变量
[root@hadoop1 ~]# vi .bashrc
添加如下内容:
#JAVA
export JAVA_HOME=/root/apps/jdk1.8.0_73
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib 
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin 


保存使其立即生效
[root@hadoop1 ~]# source .bashrc

 测试安装是否成功

java -version

8 保存镜像 

基于已有的docker容器,做一新的dokcer image.

$ docker commit <container_id> <image_name>

另开一个窗口

[docker@localhost ~]$ docker ps

[docker@localhost ~]$ docker commit 59e76e7ca6b0 centos_basic

 

[docker@localhost ~]$ docker image ls

 此时可以看到有一个新建立的镜像centos_basic存在。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#慧#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值