Docker相关操作(二)

本文详细介绍了Docker的安装步骤,如何查看系统内核及Docker版本,验证Docker的运行,搜索、下载和管理Docker镜像,以及启动、停止、后台运行、导出和导入容器等基本操作。

一、安装Docker

yum install docker

二、查看系统内核

[root@bigdata maildrop]# uname -r

三、查看docker版本

[root@bigdata maildrop]# docker version

四、验证docker

[root@bigdata maildrop]# docker run hello-world

五、搜索可用的docker镜像

命令行的格式为:docker search 镜像名字

[root@bigdata maildrop]# docker search centos7

六、下载容器镜像

执行pull命令的时候要写完整的名字,比如"learn/tutorial"

例如:# docker pull learn/tutorial

[root@bigdata maildrop]# docker pull centos7

七、查看镜像

[root@bigdata maildrop]# docker images

八、启动容器

以下命令使用 centos 镜像启动一个容器:

[root@bigdata maildrop]# docker run -it centos /bin/bash

参数说明:

    -i: 交互式操作。

    -t: 终端。

    centos: centos 镜像。

    /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

要退出终端,直接输入 exit:

九、启动已停止运行的容器

查看所有的容器命令如下:

[root@bigdata maildrop]# docker ps -a

使用 docker start 启动一个已停止的容器:

[root@bigdata maildrop]# docker start 09146d9c89b4

十、后台运行

在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。

[root@bigdata maildrop]# docker run -itd --name centos-test centos /bin/bash

注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec

十一、查看已经启动的镜像

[root@bigdata maildrop]# docker ps

十二、停止一个容器

停止容器的命令如下:

# docker stop <容器 ID>

[root@bigdata maildrop]# docker stop 09146d9c89b4

停止的容器可以通过 docker restart 重启:

# docker restart <容器 ID>
[root@bigdata maildrop]# docker restart 09146d9c89b4

十三、进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

docker attach

docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

attach 命令

下面演示了使用 docker attach 命令。

[root@bigdata maildrop]# docker attach 09146d9c89b4

注意: 如果从这个容器退出,会导致容器的停止。

exec 命令

下面演示了使用 docker exec 命令。

[root@bigdata maildrop]# docker exec -it 5b9dd49c96eb /bin/bash

注意: 如果从这个容器退出,不会导致容器的停止,这就是为什么推荐大家使用 docker exec 的原因。

更多参数说明请使用 docker exec --help 命令查看。

十四、导出和导入容器

导出容器

如果要导出本地某个容器,可以使用 docker export 命令。

[root@bigdata maildrop]# docker export 09146d9c89b4 > contos.tar

导出容器 09146d9c89b4快照到本地文件 contos.tar。

导入容器快照

可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 contos.tar 导入到镜像 test/ contos.tar:

[root@bigdata maildrop]# cat docker/centos.tar | docker import - test/centos:v1

十五、删除容器

删除容器使用 docker rm 命令:

[root@bigdata maildrop]# docker rm -f 09146d9c89b4

清理掉所有处于终止状态的容器。

# docker container prune

 

<think>我们正在解决Docker相关操作报错的问题。根据引用内容,用户可能遇到多种错误,我们需要提供系统化的解决方案。 由于引用中提到了多种场景(安装失败、启动报错、权限问题等),我们将分步骤提供解决方案。 注意:用户提到自己对Docker不太了解,所以步骤要详细。 根据引用[2]和[3]:安装Docker前需要卸载旧版本,并按照正确的步骤安装。 引用[4]提到了WSL2下docker启动报错的问题(可能涉及华为手机,但这里我们关注Docker本身)。 引用[5]提到了时区转换的问题,但可能与当前问题无关。 我们将按照以下步骤进行: 1. 检查Docker是否安装正确 2. 解决权限问题(避免sudo) 3. 解决启动问题(特别是WSL2环境) 4. 其他常见错误 注意:用户指令中使用了32位镜像(i686),在64位系统上可能需要开启多架构支持。 由于用户问题比较宽泛,我们提供通用解决方案。 </think>### Docker操作报错问题解决指南 #### 一、环境检查与基础修复 1. **验证Docker安装状态**[^2] ```bash docker version || systemctl status docker.service ``` - 若未安装: - 卸载旧版本:`yum remove docker* docker-*` [^3] - 安装依赖:`yum install -y yum-utils device-mapper-persistent-data lvm2` - 添加仓库:`yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo` - 正式安装:`yum install -y docker-ce docker-ce-cli containerd.io` 2. **解决权限问题** ```bash sudo usermod -aG docker $(whoami) # 当前用户加入docker组 newgrp docker # 刷新组权限 sudo systemctl restart docker # 重启服务 ``` 3. **内核兼容性检查**[^1] ```bash uname -m # 确认架构(x86_64/arm64等) lsmod | grep overlay # 检查存储驱动 ``` - 若缺少`overlay`模块: ```bash sudo modprobe overlay echo "overlay" | sudo tee -a /etc/modules-load.d/overlay.conf ``` #### 、常见报错解决方案 1. **WSL2环境报错**[^4] ```bash # 编辑WSL配置 sudo nano /etc/wsl.conf ``` 添加: ```ini [boot] systemd=true ``` 重启服务: ```powershell wsl --shutdown wsl -d Ubuntu ``` 2. **镜像拉取失败** ```bash # 切换阿里云镜像源 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json << EOF { "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload && sudo systemctl restart docker ``` 3. **容器启动报错** ```bash # 查看详细日志 docker logs eap --details 2>&1 | less ``` 常见处理: ```bash # SELinux权限问题 sudo setenforce 0 # 临时关闭 sudo restorecon -Rv /eap # 修复目录标签 # 端口冲突 netstat -tuln | grep :8080 # 检查占用端口 ``` #### 三、深度诊断工具 1. **系统级检查** ```bash journalctl -u docker.service -n 100 --no-pager # 查看Docker日志 docker info | grep -iE "storage|driver" # 存储驱动检查 ``` 2. **容器调试技巧** ```bash # 进入故障容器 docker exec -it eap /bin/bash # 检查挂载点 mount | grep /eap ls -lZ /eap # 查看SELinux上下文 # 验证用户映射 id user0 && groups user0 ``` #### 四、预防性维护 ```bash # 定期清理 docker system prune -af # 清除无用资源 # 版本兼容性检查 rpm -q docker-ce --changelog | head -n 20 # 查看修复记录 # 内核参数优化 sudo sysctl -w vm.max_map_count=262144 echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf ``` > **重要提示**:操作后若仍异常,尝试系统重启[^1],可解决部分驱动加载问题:`sudo reboot`
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值