CentOS上安装Docker及docker常用命令

本文详细介绍了在CentOS系统中安装Docker Engine的步骤,包括卸载旧版本、通过repository安装、权限设置和常用命令。此外,还涵盖了镜像管理、容器操作、深度学习框架镜像搜索等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、在CentOS上安装Docker Engine

Docker 引擎是用来运行和管理容器的核心软件。通常人们会简单地将其代指为 Docker 或 Docker 平台。因此我们需要在CentOS服务器上安装Docker引擎,以便于多用户进行容器化部署。

下面做一些简要说明,详情请参考官方教程:
https://docs.docker.com/engine/install/centos/.

1、Docker Engine安装

依赖项:
CentOS 7(暂不支持8)
centos-extras repository(默认安装的)
overlay2 storage driver

1.1 卸载以前的docker

老版本的叫docker或者docker-engine,如果存在就用如下命令卸载掉。

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
sudo rm -rf /var/lib/docker
(慎重:这是镜像和容器的默认存储位置,不要误删)

1.2 安装方法

1.2.1 用repository方法安装

0)创建docker-repository

更新yum软件包并安装软件包以允许yum通过HTTPS使用存储库:

#更新yum软件包
#yum-utils:管理repository及扩展包的工具 (主要是针对repository)
$ sudo yum update && yum install -y yum-utils
#通过https使用docker-ce存储库
$ sudo yum-config-manager --add-repo \
> https://download.docker.com/linux/centos/docker-ce.repo
已加载插件:fastestmirror, langpacks
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.reposud
repo saved to /etc/yum.repos.d/docker-ce.repo

docker-ce.repo包含了上述所有软件
参考 《docker-ce介绍》

1)安装docker-engine

a、安装最新版的Docker Engine 和containerd:

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

注意:
安装过程中看看fingerprint是否与官方的一致,如果一致就接受GPG key。
Docker 已经被安装了但是还没启动,没有任何用户添加进docker group。

b、安装其他指定版本的docker

查看repository有那些docker版本

# yum list docker-ce --showduplicates | sort -r
已加载插件:fastestmirror, langpacks
已安装的软件包
可安装的软件包
 * updates: mirrors.ustc.edu.cn
Loading mirror speeds from cached hostfile
 * extras: mirrors.ustc.edu.cn
docker-ce.x86_64            3:20.10.3-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.3-3.el7                    @docker-ce-stable
docker-ce.x86_64            3:20.10.2-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.1-3.el7                    docker-ce-stable 
.......

安装指定版本的docker

$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

c、启动docker

$ sudo systemctl start docker

d、通过运行hello-world来测试docker是否正确安装

$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.

e、验证:docker --version

docker -v
docker --version
docker version
Docker version 20.10.3, build 48d30b5

f、查看镜像docker image

$ sudo docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    bf756fb1ae65   13 months ago   13.3kB

二、卸载docker

1、卸载Docker Engine, CLI, and Containerd packages:

$ sudo yum remove docker-ce docker-ce-cli containerd.io

2、手动删除配置文件

$ sudo rm -rf /var/lib/docker

三、开放docker权限给一般用户

因为使用docker需要sudo权限,因此需要给一般用户配置docker的sudo权限才行,具体可参考:

方法一:
《centos系统中为用户添加、删除和修改sudo权限》.

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

# 建立docker组
sudo groupadd docker
# 将当前用户加入docker组
sudo usermod -aG docker $USER1234

四、docker的常用指令

1、镜像与容器的基本操作

1.1 拉取镜像

docker官方仓库:https://hub.docker.com/.
你想安装的软件镜像都可以在这个仓库里找到。
第一次登录需要注册一个账户

具体操作参考:《docker 拉取镜像》.

1.2 运行镜像

(使用该命令会创建新的容器,相当于每次执行会翻模一次,除了ID不同其他都相同)

(该命令如果本地没有该镜像的话执行该命令相当于:先后执行 pull+run 两个命令

docker run hello-world

1.3 再次查看本地的镜像

docker images

1.4 查看正在运行的容器

(如果容器没事可做会被docker关闭运行状态,因为hello-world打印输出之后就没事可做了,所以执行下面的命令看不到hello-world容器)

docker container ls

简化命令:docker ps

1.5 查看所有容器

(下面的命令可以查看所有容器包括正在运行的、已经结束的)

docker container ls -a

简化命令:docker ps -a
执行上面的命令输出如下:
容器 ID 镜像名称 启动容器时运行的命令 容器的创建时间 容器的状态 容器的端口 容器名称

1.6 删除镜像

1)镜像未在运行
(删除镜像要输入镜像ID,可以只输入前一段能区分就行了)

docker rmi -f 你的镜像ID

2)镜像在运行
方法一:查找运行的进程,并杀死进程:

$ docker images #查询镜像名称
$ ps -ef|grep ndslabs/pycharm-xpra #查询进程号
$ kill -9 4234 4236 #根据进程号杀死进程
$ docker rmi -f e6cab2a906b3 #根据镜像号删除镜像

方法二:
执行删除命令,如果出现 :Error response from daemon: conflict: unable to delete bf756fb1ae65 (must be forced) - image is being used by stopped container 4d102af792af
说明这个镜像还在被容器依赖,这时要先删除它创建的容器(包括已经停止的容器)才能删除该镜像,也可以强制删除:

docker images rm -f bf756

1.7 删除容器

(删除容器和删除镜像差不多 ,输入容器ID前几位就行了)

docker container rm 4d102

简化命令:docker rm 4d102
如果出现:Error response from daemon: You cannot remove a running container a7… Stop the container before attempting removal or force remove
说明该容器正在运行需要先停止运行才能删除,也可以强制删除:

dockers container rm -f 4d102

简化命令:docker rm -f 4d102

1.8 启动容器

(启动容器 ,输入容器ID前几位就行了。可以同时启动多个ID ,空格分隔开来)

docker container start 4d102

简化命令:docker start 4d102

也可以通过如下命令直接进入容器

docker exec -it 3a3afa942911 bash

1.9 停止容器

(停止容器 ,输入容器ID前几位就行了。可以同时停止多个ID ,空格分隔开来)

docker container stop af749

简化命令:docker stop af749

1.10 重启容器

(重启容器 ,输入容器ID前几位就行了。可以同时启动多个ID ,空格分隔开来)

docker container restart af7451

简化命令:docker restart af7451

2、其他附加命令汇总

2.1 docker命令与镜像

docker images #查看现有镜像
docker images -aq #查看所有镜像的id
docker info #查看镜像信息
docker 命令  --help #查看指定命令的帮助,即使用方法
docker images -q #查看镜像id
docker images -aq #查镜像所有id
docker search mysql #搜索指定镜像
docker search mysql --filter=STARS=3000 #过滤指定STARS范围镜像
docker pull --help #拉取或下载新的镜像
docker pull mysql  #例如:拉取镜像mysql
docker pull mysql:5.7 #拉取指定版本的镜像
docker rmi -f 镜像id   #删除镜像
docker rmi -f $(docker images -aq) #删除所有镜像

备注:其他安装命令请参考官方文档:
https://docs.docker.com/reference/

2.2容器命令

说明:有了镜像才能创建容器,例如linux,centos

2.3 测试容器

3、常用容器命令

3.1 后台启动容器

3.2 查看日志

3.3 查看容器元数据inspect

3.4 进入当前正在运行的容器

3.5 从容器内拷贝文件到我的主机上

docker 命令小总结:
在这里插入图片描述

五、搜索深度学习框架镜像

搜索深度学习框架镜像,可根据需求拉取镜像即可。

参考:
《Docker学习笔记与深度学习环境的搭建和部署(一)》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值