什么是Docker?
Docker是⼀个开源的容器化平台,可以帮助开发者将应⽤程序和其依赖的环境打包成⼀个可移植、可部署的容器。Docker的主要⽬标是通过容器化技术实 现应⽤程序的快速部署、可移植性和可扩展性,从⽽简化应⽤程序的开发、测试和部署过程。
容器化是⼀种虚拟化技术,它通过在操作系统层⾯隔离应⽤程序和其依赖的运⾏环境,使得应⽤程序可以在⼀个独⽴的、封闭的环境中运⾏,⽽不受底层 操作系统和硬件的影响。与传统的虚拟机相⽐,容器化具有以下优势:
轻量级: 容器与宿主机共享操作系统内核,因此容器本身⾮常轻量级,启动和停⽌速度快,资源占⽤少。
可移植性: 容器可以在任何⽀持相应容器运⾏时的系统上运⾏,⽆需关注底层操作系统的差异,提供了⾼度的可移植性。
快速部署: 容器化应⽤程序可以通过简单的操作进⾏打包、分发和部署,减少了部署过程的复杂性和时间成本。
弹性扩展: 可以根据应⽤程序的需求快速创建、启动和停⽌容器实例,实现应⽤程序的弹性扩展和负载均衡。
环境隔离: 每个容器都具有独⽴的运⾏环境,容器之间相互隔离,不会相互⼲扰,提供了更好的安全性和稳定性。
Docker有什么用?
当我们制作成一个软件需要发给别人使用时,因为操作系统的不同,可能软件会无法运行
而为了模拟完全相同的开发环境,就需要使用到虚拟机
但是虚拟机需要模拟硬件,体积臃肿,内存高,影响程序的性能
Docker就是一个轻量级的虚拟机
不会模拟底层硬件,只会提供一个运行环境
Docker的安装
docker官⽹:https://docs.docker.com/engine/install/centos/
以CentOS7为例
打开终端,复制此段运行(此为清除原有的docker)
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
由于我是新建的一个操作系统所以是没有docker的,运行结果如下
安装
sudo yum install -y yum-utils
我在安装使出现了一个问题:ping未知的名称或服务
这个是因为DNS的问题无法访问网络,已解决(这个问题比较麻烦,看收藏夹)
除此之外还有一个问题
本地装机成功后配置完网络执行yum 的时候报:Cannot find a valid baseurl for repo: base
表示
yum
无法为 "base" 仓库找到有效的基础 URL。这通常发生在仓库配置不正确或所指定的仓库源不再可用时。
收藏夹中有解决问题的办法,已解决
此外提及一下yum是什么:
yum
(Yellowdog Updater, Modified)是一个在基于 RPM 的 Linux 发行版中使用的命令行包管理器。它的主要功能包括:
- 安装软件包:允许用户从软件仓库安装新的软件包。
yum install <package_name>
- 更新软件包:更新已安装的软件包到最新版本。
yum update
- 删除软件包:从系统中删除不再需要的软件包。
yum remove <package_name>
- 列出软件包:显示已安装的软件包或可安装的软件包信息。
yum list
- 搜索软件包:在仓库中搜索特定的软件包。
yum search <keyword>
- 解决依赖问题:自动处理软件包之间的依赖关系,确保安装或更新时所有依赖都被满足。
- 清理缓存:清除缓存数据,释放磁盘空间。
yum clean
接下来进行余下步骤:
# 默认⽤的是国外的仓库,推荐使⽤国内阿⾥云的仓库
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件包索引
yum makecache fast
安装docker.
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
此时我遇到了一个错误:
解决办法
运行:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
解决完这个问题就可以安装完成docker了
检查docker版本
检查docker是否安装成功
docker version
#运行此代码如果active是running则代表docker已启动
systemctl status docker
#如果没有运行,则执行以下代码运行
systemctl start docker
运行docker
跑⼀个简单镜像
[root@master ~]# docker run hello-world
本地没有hello-world
Unable to find image 'hello-world:latest' locally
拉取镜像进行下载
latest: Pulling from library/hello-world
下载成功
2db29710123e: Pull complete
Digest: sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
运行成功
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
此时我又遇到一个问题
docker拉取镜像失败:download failed after attempts=6: dial tcp 104.18.125.25:443: i/o timeout
解决办法看收藏夹
下载成功后再次运行docker run hello-world就非常快速
至此,docker的安装已经全部完成
阿里云镜像加速器
拉取镜像时可以更快
登录阿里云,点击镜像加速器配置到docker,每个账号的都不一样,用自己的最好
阿里云->控制台->容器->容器镜像服务->自己专属的阿里云镜像加速器,直接复制代码运行即可配置成功
Docker补充指令
#7、查看容器和镜像
docker container ls -a
docker images ls
#8、删除所有容器和镜像
docker container rm $(docker container ls -aq)
docker image rm -f $(docker image ls -q)
#9、卸载docker - 了解
yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 删除docker默认⼯作⽬录
rm -rf /var/lib/docker
版权归原作者 鱼鱼鱼悸 所有, 如有侵权,请联系我们删除。