如何在RHEL 7/CentOS 7上安装和设置Docker

时间:2020-01-09 10:41:01  来源:igfitidea点击:

如何在RHEL 7(Red Hat Enterprise Linux)服务器上安装和设置Docker容器?
如何在CentOS 7上设置Docker?
如何在CentOS Linux 7服务器上安装和使用Docker CE?

Docker是免费的开源软件。
它可以将任何应用程序自动部署为轻便,可移植,自给自足的容器,几乎可以在任何地方运行。
通常,您在笔记本电脑/台式机上开发软件。
您可以使用应用程序构建容器,并且可以在计算机上测试运行情况。
它将在云,VM,VPS,裸机等中进行扩展。

Docker有两个版本。
第一个与RHEL/CentOS 7发行版捆绑在一起,可以与yum一起安装。

Docker项目分发的第二个版本称为docker-ce(无社区版本),可以由官方Docker项目仓库安装。

Docker项目分发的第三个版本称为docker-ee(企业付费版本),可以由正式的Docker项目仓库安装。
本教程显示如何在RHEL 7或CentOS 7服务器上安装,设置和使用Docker或Docker CE,以及如何创建第一个容器。

如何在RHEL 7或CentOS 7上安装和使用Docker(方法1)

Docker的安装过程如下:

  • 执行以下命令以通过Red Hat提供的yum安装Docker:sudo yum install docker
  • 执行以下命令以安装最新版本的Docker CE(社区版): sudo yum remove docker docker-common docker-selinux docker-enginesudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install docker-ce

让我们详细查看所有信息以及示例。

如何使用yum在CentOS 7/RHEL 7上安装Docker

执行以下yum命令:

$ sudo yum install docker

如何在CentOS 7上安装Docker CE(方法2)

首先删除旧版本的docker(如果有):

$ sudo yum remove docker docker-common docker-selinux docker-engine-selinux docker-engine docker-ce

接下来安装所需的软件包:

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

配置docker-ce仓库:

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

最后安装docker-ce:

$ sudo yum install docker-ce

如何启用Docker服务

$ sudo systemctl enable docker.service

输出示例:

Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

如何在CentOS7/RHEL7上启动/停止/重启Docker服务

$ sudo systemctl start docker.service ## <-- Start docker ##
$ sudo systemctl stop docker.service ## <-- Stop docker ##
$ sudo systemctl restart docker.service ## <-- Restart docker ##
$ sudo systemctl status docker.service ## <-- Get status of docker ##

如何查找有关Docker网桥和IP地址的信息

默认网桥名为docker0,并分配了IP地址。
要查找此信息,请运行以下ip命令:

$ ip a
$ ip a list docker0

输出示例:

3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:cd:c0:6d:4a brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever

如何运行Docker命令

语法为:

docker command
docker command arg
docker [options] command arg
docker help | more

获取有关Docker的系统范围信息

docker info

获得帮助

docker help | more

运行" docker COMMAND --help"以获取有关命令的更多信息:

docker ps --help
docker cp --help

如何测试您的Docker安装

Docker镜像是从docker cloud/hub(例如docker.io或Registry.access.redhat.com等)中提取的。
执行以下命令以验证您的安装是否正常运行:

docker run hello-world

如何搜索Docker镜像

现在您可以使用Docker安装程序了。
现在是找出镜像的时候了。
您可以找到各种开源项目和Linux发行版的镜像。
要在Docker Hub/cloud中搜索nginx镜像,请运行:

docker search nginx

如何安装Docker Nginx镜像

要从注册表中提取名为nginx的镜像,请运行:

docker pull nginx

如何运行Docker Nginx镜像

现在,您提取了镜像,是时候运行它了:

docker run --name my-nginx-c1 --detach nginx

假设您要使用nginx容器托管/home/Hyman/html /中托管的简单静态文件:

docker run --name my-nginx-c2 -p 80:80 -v /home/Hyman/html/:/usr/share/nginx/html:ro -d nginx

其中:

  • --name my-nginx-c1:为容器分配一个名称
  • --detach:在后台运行容器并打印容器ID
  • -v/home/Hyman/html /:/usr/share/nginx/html:ro:绑定挂载卷
  • -p 80:80:将容器的端口发布到主机,即将所有进入端口80的流量重定向到容器流量

继续在/home/Hyman/html /中创建一个名为index.html的文件:

echo 'Welcome. I am Nginx server locked inside Docker' > /home/Hyman/html/index.html

测试一下:

curl http://your-host-ip-address/
curl 192.168.122.188

输出示例:

Welcome. I am Nginx server locked inside Docker

如何列出正在运行的Docker容器

docker ps
docker ps -a

输出示例:

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                NAMES
bb9d85a56a92        nginx               "nginx -g 'daemon of?"   55 seconds ago       Up 54 seconds       0.0.0.0:80->80/tcp   my-nginx-c2
fe0cdbc0225a        nginx               "nginx -g 'daemon of?"   About a minute ago   Up About a minute   80/tcp               my-nginx-c1

您可以使用容器ID来停止,暂停或登录到容器。

如何在正在运行的容器中运行命令

对my-nginx-c1容器运行ls/etc/nginx命令

docker exec fe0cdbc0225a ls /etc/nginx

或者

docker exec my-nginx-c1 ls /etc/nginx

是否想为运行中的容器获取bash shell并更改nginx镜像?

docker exec -i -t fe0cdbc0225a bash

或者

docker exec -i -t my-nginx-c1 bash

如何停止运行容器

docker stop my-nginx-c1

或者

docker stopfe0cdbc0225a

如何删除Docker容器

docker rm my-nginx-c1
docker ps -a

到此为止,Docker已安装并在CentOS 7或RHEL 7服务器上运行。