如何在Centos系统中安装Docker应用?附主要Docker命令

前段时间在网上学习docker的安装,以下方式是我亲测可用的安装教程,建议Centos 8系统下安装,更完善。

前提条件

强烈建议使Centos 8进行安装。Docker 支持 64 位版本 CentOS 7/8,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。

卸载旧版本Docker(不管有没有都执行一下没错的)

旧版本的 Docker 称为 docker 或者 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

安装Docker

使用 yum 安装

执行以下命令安装依赖包:

sudo yum install -y yum-utils

国内用户请您使用国内源(如阿里云),否则速度感人(有国外线路的另论),官方源请在注释中查看。
执行下面的命令添加 yum 软件源:

sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

官方源(不建议国内用户使用)

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

如果需要测试版本的 Docker 请执行以下命令:

sudo yum-config-manager --enable docker-ce-test

yum 安装Docker

更新 yum 软件源缓存,并安装 docker-ce。

sudo yum install docker-ce docker-ce-cli containerd.io

使用脚本自动安装

在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装,另外可以通过 –mirror 选项使用国内源进行安装:
若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本

curl -fsSL test.docker.com -o get-docker.sh
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
sudo sh get-docker.sh --mirror AzureChinaCloud

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。

CentOS8 额外设置(绕过nftables)

由于 CentOS8 防火墙使用了 nftables,但 Docker 尚未支持 nftables, 我们可以使用如下设置使用 iptables:

更改 /etc/firewalld/firewalld.conf
# FirewallBackend=nftables
FirewallBackend=iptables
或者执行如下命令
firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --reload

启动 Docker

sudo systemctl enable docker
sudo systemctl start docker

建立 docker 用户组

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

建立 docker 组

sudo groupadd docker

将当前用户加入 docker 组

sudo usermod -aG docker $USER

退出当前终端并重新登录,进行如下测试。

最后测试 Docker 是否安装正确

若能正常输出以上信息,则说明安装成功。

==============================华丽的分割线=======================================

附:主要Docker的命令

生命周期命令

创建一个容器(不启动它):
docker create [IMAGE]

重命名现有容器
docker rename [CONTAINER_NAME] [NEW_CONTAINER_NAME]

在新容器中运行命令
docker run [IMAGE] [COMMAND]

退出后移除容器
docker run –rm [IMAGE]

启动一个容器并保持运行
docker run -td [IMAGE]

启动一个容器并在容器中创建一个交互式 bash shell
docker run -it [IMAGE]

在容器内创建、启动和运行命令,并在执行命令后移除容器。
docker run -it-rm [IMAGE]

在已经运行的容器内执行命令。
docker exec -it [container]

删除一个容器(如果它没有运行)
docker rm [CONTAINER]

更新容器的配置
docker update [CONTAINER]

启动和停止容器

启动容器
docker start [CONTAINER]

停止运行容器
docker stop [CONTAINER]

停止运行容器并重新启动它
docker restart [CONTAINER]

暂停正在运行的容器中的进程
docker pause [CONTAINER]

取消暂停正在运行的容器中的进程
docker unpause [CONTAINER]

阻塞一个容器直到其他容器停止
docker wait [CONTAINER]

通过向正在运行的容器发送 SIGKILL 来杀死容器
docker kill [CONTAINER]

将本地标准输入、输出和错误流附加到正在运行的容器
docker attach [CONTAINER]

Docker 镜像命令

从 Dockerfile 创建镜像
docker build [URL/FILE]

从带有标签的 Dockerfile 创建镜像
docker build -t <tag> [URL/FILE]

从注册表中心拉取镜像
docker pull [IMAGE]

将镜像推送到注册中心
docker push [IMAGE]

从 tarball 创建镜像
docker import [URL/FILE]

从容器创建镜像
docker commit [CONTAINER] [NEW_IMAGE_NAME]
删除镜像
docker rmi [IMAGE]

从 tar 存档或标准输入加载镜像
docker load [TAR_FILE/STDIN_FILE]

将镜像保存到 tar 存档
docker save [IMAGE] > [TAR_FILE]

Docker 容器和镜像信息

列出正在运行的容器
docker ps

列出正在运行的容器和已停止的容器
docker ps -a

列出正在运行的容器中的日志
docker logs [CONTAINER]

列出 Docker 对象的低级信息
docker inspect [OBJECT_NAME/ID]

列出来自容器的实时事件
docker events [CONTAINER]

显示容器的端口映射
docker port [CONTAINER]

显示容器中正在运行的进程
docker top [CONTAINER]

显示容器的实时资源使用统计
docker stats [CONTAINER]

显示文件系统上文件(或目录)的更改
docker diff [CONTAINER]

列出本地使用 docker 引擎存储的所有镜像
docker [image] ls

显示镜像的历史
docker history [IMAGE]

网络命令

列出网络
docker network ls

删除一个或多个网络
docker network rm [NETWORK]

显示一个或多个网络的信息
docker network inspect [NETWORK]

将容器连接到网络
docker network connect [NETWORK] [CONTAINER]

断开容器与网络的连接
docker network disconnect [NETWORK] [CONTAINER]

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注