首页 > 运维 > linux运维 > 正文

菜鸟入门Docker[通俗易懂]

爱谁谁
发布: 2025-07-13 08:42:32
原创
1045人浏览过

大家好,我们又见面了,我是你们的朋友全栈君。

最近我在学习Docker时,发现网上的很多教程都是过时的,导致我在学习过程中遇到了各种各样的问题。为了方便以后查阅,我现在将学习相关的笔记记录在这里。本文仅为记录学习轨迹,如有侵权,请联系删除。

一、什么是Docker 在学习Docker的过程中,我在网上看到了一篇非常好的博文,经自己总结,Docker将应用程序及其依赖打包在一个文件中,该文件包含了所有打包的应用程序的所有依赖项,如数据库等;直接运行该文件,就可以让程序运行起来,从而无需再考虑环境问题。

(1)虚拟机和Linux容器 提到Docker,就必须了解虚拟机和Linux容器。虚拟机可以在一种操作系统中运行另一种操作系统,例如在Windows系统中运行Linux系统,并且不会对实际的电脑产生影响,不需要时可以删除虚拟机相关的文件,用户可以通过虚拟机还原软件的原始环境,实际上就是解决了配置环境的问题。尽管它有资源占用多、启动慢等缺点。Linux容器是为了解决虚拟机的这些缺点而生的。Linux发展出了一种新的虚拟化技术:Linux容器(Linux Containers,简称LXC)。Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,在正常进程的外面套了一个保护层。对于容器内部的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。由于容器是进程级别的,相较于虚拟机有很多优势,如启动快、资源占用少等。而Docker就是Linux容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的Linux容器解决方案。就像前面说的,Docker将应用程序及其依赖打包在一个文件中。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器中运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。

二、Docker的用途 这里引用网上某博主的部分内容,Docker的主要用途目前有三大类。

(1)提供一次性的环境。比如,本地测试他人的软件、持续集成时提供单元测试和构建的环境。

(2)提供弹性的云服务。因为Docker容器可以随开随关,很适合动态扩容和缩容。

(3)组建微服务架构。通过多个容器,一台机器可以运行多个服务,因此在本机就可以模拟出微服务架构。

三、Docker安装说明 由于Docker需要Linux内核的支持,我在自己的电脑(Windows 10)上安装了VMware虚拟机,在虚拟机中安装了一个Ubuntu系统,在此基础上进行Docker的安装。我参考了菜鸟教程,链接:https://www.php.cn/link/14c2a205d6fb5fb3f80fe6b9b4f5bdec

(1)设置仓库卸载旧版本

$ sudo apt-get remove docker docker-engine docker.io containerd runc
登录后复制

更新apt包索引

$ sudo apt-get update
登录后复制

安装apt依赖包,用于通过HTTPS来获取仓库

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
登录后复制

添加Docker的官方GPG密钥

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
登录后复制

9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。

$ sudo apt-key fingerprint 0EBFCD88
登录后复制

使用以下指令设置稳定版仓库

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
登录后复制

(2)安装Docker Engine-Community 更新apt包索引

$ sudo apt-get update
登录后复制

安装最新版本的Docker Engine-Community和containerd

$ sudo apt-get install docker-ce docker-ce-cli containerd.io
登录后复制

(3)验证安装成功 输入命令:docker,出现以下命令即安装成功

菜鸟入门Docker[通俗易懂]

四、Docker启动与停止 (1)启动Docker

sudo service docker start
登录后复制

(2)停止Docker

sudo service docker stop
登录后复制

(3)重启Docker

sudo service docker restart
登录后复制

五、Docker配置 (1)将用户加入Docker用户组 Docker需要用户具有sudo权限,为了避免每次命令都输入sudo,建议将用户加入Docker用户组。

添加Docker用户组 sudo groupadd docker 将当前用户加入到Docker用户组 sudo gpasswd -a ${USER} docker 重启Docker服务 sudo service docker restart 退出当前用户重登一下

(2)配置daemon.json 我一开始安装完Docker后,启动Docker服务,直接拉取image文件(注意:不是图片,后面有讲到image文件)后直接报错,显示超时,因为默认网址是国外的,需要配置国内镜像。

进入root权限 su root

菜鸟入门Docker[通俗易懂]

进入Docker文件,查看该文件下只有一个key.json,新建一个daemon.json文件。 查看文件夹命令:ls 新建文件夹命令:vim daemon.json

菜鸟入门Docker[通俗易懂]

编辑docker.json文件,输入以下内容:

{ "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"] }
登录后复制

菜鸟入门Docker[通俗易懂]

降重鸟
降重鸟

要想效果好,就用降重鸟。AI改写智能降低AIGC率和重复率。

降重鸟 113
查看详情 降重鸟

保存退出,重启Docker服务。

六、image文件 Docker将应用程序及其依赖打包在image文件中。只有通过这个文件,才能生成Docker容器。image文件可以看作是容器的模板。Docker根据image文件生成容器的实例。同一个image文件,可以生成多个同时运行的容器实例。简单理解就是,将程序打包在image文件(也叫image仓库)中,运行image文件,生成一个容器实例,容器中运行程序(已将MySQL之类的依赖都打包在里面了,无需配置数据库等环境)。也就是说,别人的程序打包在image中,自己直接拿过来后无需配置环境就可以直接运行(很神奇)。

# 列出本机的所有image文件。
$ docker image ls
# 删除image文件
$ docker image rm [imageName]
登录后复制

菜鸟入门Docker[通俗易懂]

hello-world是我自己手动下载的image仓库。

七、安装Hello-world实例 命令行直接输入

命令:docker image pull library/hello-world
命令解析:docker image pull:抓取image文件
library:image文件所在的组
hello-world:image文件的名字
注意:后期需要的image文件都可以通过这样的方式拉取,像MySQL数据库、Ubuntu系统等
登录后复制

其中Docker官方提供的image文件,都默认放在library组里面,因此,上面的命令可以写成下面这样。

docker image pull hello-world
登录后复制

运行该实例

命令:docker container run hello-world
命令解析:docker container run:自动抓取image文件
注意:如果发现本地没有指定的image文件,就会从仓库自动抓取
登录后复制

运行结果

菜鸟入门Docker[通俗易懂]

注意:输出这段提示以后,hello world就会停止运行,容器自动终止。对于那些不会自动终止的容器,必须使用docker container kill命令手动终止。

$ docker container kill [containID]
登录后复制

八、容器文件 image文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件:image文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。

# 列出本机正在运行的容器
$ docker container ls
# 列出本机所有容器,包括终止运行的容器
$ docker container ls --all
登录后复制

上面命令的输出结果之中,包括容器的ID。很多地方都需要提供这个ID,比如上一节终止容器运行的docker container kill命令。

终止运行的容器文件,依然会占据硬盘空间,可以使用docker container rm命令删除。

$ docker container rm [containerID]
登录后复制

运行上面的命令之后,再使用docker container ls --all命令,就会发现被删除的容器文件已经消失了。

九、配置镜像 这是额外补充的,当前面配置了各种加速镜像都没有的情况下,用这个方式。

命令:vi /etc/docker/daemon.json 注意:daemon.json该文件可能不存在,这个时候正常创建即可。

加入如下内容:

{
  "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
登录后复制

例如

菜鸟入门Docker[通俗易懂]

配置完重启服务即可。 命令1:sudo systemctl daemon-reload 命令2:sudo systemctl restart docker

十一、Docker的另一种安装方式

1. 下载docker-ce的repo
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
2. 安装依赖
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
3. 安装docker-ce
dnf -y  install docker-ce  docker-ce-cli --nobest
4. 启动docker
systemctl start docker
5. 查看docker版本信息
docker -v
6. 设置开机自动启动
systemctl enable --now docker
登录后复制

我用CentOS 8亲测可以,就是有一个安装102M的过程有点久,只有不到100k/s的速率,不过也是可以安装成功的。

至此,Docker基本入门结束,该博文参考了网上大多数Docker教程。

发布者:全栈程序员栈长,转载请注明出处:https://www.php.cn/link/556fe7056165f3f6490139ca118e1c49 原文链接:https://www.php.cn/link/c8377ad2a50fb65de28b11cfc628d75c

以上就是菜鸟入门Docker[通俗易懂]的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号