Docker-在CentOS下的配置:

Docker入门:

Docker是容器技术的代表。容器技术是将程序打包隔离的技术,不是最新的技术。但真正让容器技术变成火爆技术,也是是因为docker

预备知识:

Linux命令行,

Bash

 

 

 

对Docker的认识:

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 
Docker通常用于如下场景:
•       web应用的自动化打包和发布;
•       自动化测试和持续集成、发布;
•       在服务型环境中部署和调整数据库或其他的后台应用;
•       从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
可以粗糙的理解为轻量级虚拟机。但是docker不是虚拟机。
hypervisor虚拟硬件,在上方创建完全独立的GuestOS
 
 
 
比如我们拿比较常用的虚拟机和Docker做对比,如下图

 

 

 

 

 

Docker在Linux下的安装:

Docker系统有两个程序:docker服务端和docker客户端。其中docker服务端是一个服务进程,管理着所有的容器。docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。大部分情况下,docker服务端和客户端运行在一台机器上。

CentOS 7 (使用yum进行安装)

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
 
# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ee.repo
#    [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

安装校验

root@iZbp12adskpuoxodbkqzjfZ:$ docker version
Client:
 Version:      17.03.0-ce
 API version1.26
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 2807:52:042017
 OS/Arch:      linux/amd64
 
Server:
 Version:      17.03.0-ce
 API version1.26 (minimum version1.12)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 2807:52:042017
 OS/Arch:      linux/amd64
 Experimental: false

开启docker服务:

sudo systemctlstart docker

附官网完整安装流程链接(比较复杂,供参考):

https://docs.docker.com/engine/installation/linux/docker-ce/centos/#prerequisites

 

 

卸载Docker CE

1.    卸载Docker包:

sudo yum remove docker-ce

2.    主机上的图像,容器,卷或自定义配置文件不会自动删除。删除所有图像,容器和卷:

sudo rm -rf /var/lib/docker

您必须手动删除任何已编辑的配置文件。

 

 

 

docker 架构:

 

docker在容器内所做的改动都是暂时的。
DOCKER_HOST就是我们处于的那个虚拟机。Registry是互联网的一个SaaS服务。
我们相当于客户端client,键入docker命令。守护进程daemon接收到客户端的命令并进行处理。比如一个pull镜像的命令,daemon会去registry官方镜像仓库拉取下来一个镜像image,image在Docker中可以理解为镜像的概念,比如用“docker images”命令可以查看当前所有的镜像列表,Container是Image在运行时的一个状态。
如果拿虚拟机作一个比喻的话,Image就是关机状态下的磁盘文件,Container就是虚拟机运行时的磁盘文件,包括内存数据。

镜像构建

 

配置国内加速代理仓库:

https://cr.console.aliyun.com/#/accelerator

 

复制页面上提供的修改命令,在本地路径配置文件即可。

 

 

运行第一个容器:

环境就绪,马上运行第一个容器,执行命令:

docker run -d -p 80:80 httpd


其过程可以简单的描述为:

1.     从 Docker Hub下载 httpd 镜像。镜像中已经安装好了 Apache HTTP Server。

2.     启动 httpd容器,并将容器的 80 端口映射到 host 的 80 端口。

下面我们可以通过浏览器验证容器是否正常工作。在浏览器中输入 http://[your ubuntu hostIP]

可以访问容器的 http 服务了,第一个容器运行成功!我们轻轻松松就拥有了一个 WEB 服务器。随着学习的深入,会看到容器技术带给我们更多的价值。

 

 

Docker命令:

 

               docker images     列出image
               docker run -p 8080:80 -d daocloud.io/nginx               映射端口
               docker ps             查看当前运行容器
               docker ps -a         查看所有容器
               docker stop XXX(CONTAINER ID)     停止
               docker rmi XXX(CONTAINER ID)       移除
               docker rm XXX(CONTAINER ID)

 

 

 

 

<think>好的,我现在需要解决用户遇到的Docker安装冲突问题,具体错误是“docker-ce-cliconflicts withdocker-1.13.1”。首先,我要理解这个错误的原因。根据用户提供的引用内容,这个错误通常是因为系统中已经存在旧版本的Docker,而用户尝试安装新版本的Docker社区版(docker-ce)时发生了冲突。接下来,我需要整理解决步骤。根据引用[1]、[2]和[3],解决这个问题的主要步骤是卸载旧版本的Docker和相关组件,然后再安装新版本。首先,用户需要确认系统中已安装的Docker组件,可以通过命令`yumlist installed| grepdocker`来检查。如果有旧版本的Docker存在,就需要用`yum remove`命令卸载它们,特别是dockerdocker-client、docker-common等包。引用[3]中提到可能需要使用`yum remove-ydocker-ce*`来彻底清除所有相关组件。卸载完成后,用户需要确保添加正确的Docker CE仓库,比如使用阿里云的镜像源,如引用[2]中的`wget`命令下载仓库配置文件。然后,再执行安装命令`yum installdocker-cedocker-ce-cli containerd.io`。如果还有依赖问题,可能需要清理缓存或更新仓库元数据。此外,用户可能需要处理残留的配置文件,如`/var/lib/docker`目录,但需要注意这可能会删除现有数据。安装完成后,启动Docker服务并设置开机自启也是必要的步骤。 用户可能遇到的问题还包括在安装过程中忽略依赖冲突,比如使用`--skip-broken`选项,但这可能不是最佳实践。另外,如果用户使用的是Kubernetes(K8S),需要确认Docker版本兼容性,如引用[4]提到的错误。 最后,要生成相关问题,帮助用户深入理解可能遇到的后续问题,比如如何彻底卸载Docker、处理其他冲突、验证安装等。这些问题应该覆盖用户可能需要的进一步信息,确保他们能够顺利完成安装并解决潜在问题。</think>### 解决Docker安装冲突问题的步骤 #### 1. **确认已安装的旧版本Docker** 执行以下命令查看系统中已存在的Docker组件: ```bash yum list installed | grep docker ``` 若输出包含`docker-1.13.1`或类似旧版本,需先卸载这些组件[^1][^2]。 --- #### 2. **彻底卸载旧版本Docker** ```bash yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine docker-ce* ``` - 使用通配符`*`确保清除所有`docker-ce`相关包[^3]。 - 再次执行`yum list installed | grep docker`确认无残留。 --- #### 3. **清理残留文件(可选)** ```bash rm -rf /var/lib/docker ``` - 此操作会删除所有Docker容器和镜像,需谨慎操作[^3]。 --- #### 4. **配置Docker CE官方仓库** - 使用阿里云镜像源加速(适用于CentOS): ```bash wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo ``` - 更新仓库元数据: ```bash yum makecache fast ``` --- #### 5. **安装Docker CE** ```bash yum install -y docker-ce docker-ce-cli containerd.io ``` - 若仍有依赖冲突,尝试: ```bash yum install -y --allowerasing docker-ce docker-ce-cli containerd.io ``` --- #### 6. **启动并验证Docker** ```bash systemctl start docker systemctl enable docker docker version ``` - 输出应显示新版本信息(如`20.10.7`)。 --- ### 相关问题 1. **如何彻底卸载Docker及其残留文件?** - 需结合`yum remove`和手动清理`/var/lib/docker`目录[^3]。 2. **安装时遇到其他依赖冲突(如`containerd.io`版本不兼容)怎么办?** - 可尝试单独更新依赖包,或使用`yum upgrade`升级系统基础库[^2]。 3. **如何验证Docker安装是否成功?** - 运行`docker run hello-world`测试容器功能[^1]。 4. **Kubernetes(K8S)对Docker版本有何要求?** - K8S 1.24+已弃用Docker,需改用`containerd`或`cri-o`[^4]。 --- ### 引用说明 [^1]: 旧版本冲突需卸载后重新安装。 [^2]: 配置仓库时建议使用国内镜像加速。 [^3]: 残留文件可能导致后续安装异常。 [^4]: K8S兼容性问题需注意运行时选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值