旧话重提,有些日子没有安装docker了,这也导致忘记了如何操作,踩了很多坑,特此记录一下,如果还能帮到大家就更好了,如果帮到江湖朋友了,就点个赞,在此谢过
一、Docker安装环境检查
以centOS 7为例,首先要确定Linux版本
新版本的Docker对Linux系统版本有一定的要求。如果Linux的发行版系统是centOS,安装最新版的docker需要centOS 7以上的系统。
在Docker安装帮助页面查看支持的系统版本。
可以通过命令查看linux系统信息
代码语言:bash复制cat /etc/os-release
二、docker安装
1、安装必要的一些系统工具
代码语言:bash复制sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加软件源信息
代码语言:bash复制sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、更新yum索引列表并安装Docker引擎
代码语言:bash复制sudo yum makecache fast
4、yum索引列表没有更新可以直接使用yum makecache(若有报错请翻阅第四部分第二条)
docker-ce:社区版的,docker-ee:企业版的
代码语言:bash复制sudo yum install docker-ce
5、安装过程中会提示确认,输入y以确认
6、开启Docker服务
代码语言:bash复制sudo service docker start
或
代码语言:bash复制systemctl start docker
7、测试是否安装成功
通过命令
代码语言:bash复制docker version
若安装成功会提示以下信息
8、测试Hello World
代码语言:bash复制docker run hello-world
或
代码语言:bash复制sudo docker run hello-world
此时会有拉去成功的签名信息以及欢迎语句,当出现"Hello from Docker!”时,代表我们镜像安装成功。
9、查看下载的hello-world镜像
代码语言:bash复制docker images
或
代码语言:bash复制sudo docker images
三、常用命令
1、列出容器
代码语言:bash复制命令:docker ps [OPTIONS]
OPTIONS说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
2、进入容器<请先看完两者区别再使用>
(1)attach命令
attach是Docker自带的命令,命令的格式为:
docker attach [OPTIONS] CONTAINER
(2)exec命令
从Docker的1.3版本起,Docker提供了更加方便的工具exec命令,可以在运行容器内直接执行任意命令。命令格式为:
docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
区别:
当多个窗口同是attach到同一个容器的时候,所有窗口都会同步显示;当某个窗口因命令阻塞时,其他窗口也无法执行操作。
可以使用 docker exec -it 容器id /bin/bash 进入容器并开启一个新的bash终端。 退出容器终端时,不会导致容器的停止。
使用 docker attach 容器id 进入正在执行容器,不会启动新的终端, 退出容器时,会导致容器的停止。
四、常见问题解决方法
1、添加源时遇到如下报错
解决方法:遇到该报错,基本是由于没有配置dns,导致无法解析域名,配置dns后便可以解决
2、在安装时若报错如下
代码语言:bash复制。。。。。。
- 软件包 podman-3.1.0-0.13.module_el8.5.0 733 9bb5dffa.x86_64 需要 runc >= 1.0.0-57,但没有提供者可以被安装
。。。。。。
- 软件包 docker-ce-3:20.10.11-3.el8.x86_64 需要 containerd.io >= 1.4.1,但没有提供者可以被安装
。。。。。。
- 软件包 podman-catatonit-1:3.4.1-3.module_el8.6.0 954 963caf36.x86_64 需要 podman = 1:3.4.1-3.module_el8.6.0 954 963caf36,但没有提供者可以被安装
- 软件包 podman-1:3.4.1-3.module_el8.6.0 954 963caf36.x86_64 需要 runc >= 1.0.0-57,但没有提供者可以被安装
(尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选)
此时可以使用如下命令来解决这个问题:
代码语言:bash复制sudo yum install --allowerasing docker-ce docker-ce-cli containerd.io