遇见Docker说~

🎬 博客主页:楼下安同学的博客

🎥 本文由 楼下安同学 原创 🙉

🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

📆生活明朗,万物可爱,人间值得,未来可期!✨

----❤️-----❤️-----❤️-----❤️-----❤️-----❤️-----❤️-----

Docker是什么?

在这里插入图片描述

  Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

Docker原理

  Docker底层实现是基于namespacecgroup实现的。

  Linux Namespaces机制提供一种资源隔离方案。PID,IPC,Network等系统资源不再是全局性的,而是属于某个特定的Namespace。每个namespace下的资源对于其他namespace下的资源都是透明,不可见的。因此在操作系统层面上看,就会出现多个相同pid的进程。系统中可以同时存在两个进程号为0,1,2的进程,由于属于不同的namespace,所以它们之间并不冲突。而在用户层面上只能看到属于用户自己namespace下的资源,例如使用ps命令只能列出自己namespace下的进程。这样每个namespace看上去就像一个单独的Linux系统。

  Docker 容器使用 linux namespace 来隔离其运行环境,使得容器中的进程看起来就像一个独立环境中运行一样。但是,光有运行环境隔离还不够,因为这些进程还是可以不受限制地使用系统资源,比如网络、磁盘、CPU以及内存 等。关于其目的,一方面,是为了防止它占用了太多的资源而影响到其它进程;另一方面,在系统资源耗尽的时候,linux 内核会触发 OOM,这会让一些被杀掉的进程成了无辜的替死鬼。因此,为了让容器中的进程更加可控,Docker 使用 Linux cgroups 来限制容器中的进程允许使用的系统资源

Docker核心概念

  • docker镜像(Images):Docker 镜像是用于创建 Docker 容器的模板。
  • docker容器(Container):容器是独立运行的一个或一组应用。
  • docker客户端(Client): 客户端通过命令行或者其他工具使用Docker API与 Docker 的守护进程通信docker主机(Host):一个物理或者虚拟的机器用于执行Docker 守护进程和容器。
  • docker仓库(Registry):Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库DockerHub 提供了庞大的镜像集合供使用。

Docker安装

1、Linux下安装
# 移除旧的docker版本:
sudo yum remove docker
# 安装依赖的工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加软件来源:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum缓存:
sudo yum makecache fast
# 安装docker
sudo yum -y install docker-ce

安装成功展示:

在这里插入图片描述

2、windows下安装

推荐安装桌面版docker.稳定

下载桌面版安装包,安装完成后开启hyper-v即可!

在这里插入图片描述
奇葩问题及时Google!!!

更换docker源

# 修改/etc/docker/daemon.json
vim /etc/docker/daemon.json

# json中的地址可以删减
{"registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://registry.docker-cn.com"
    ]
}

验证:

# docker info中显示刚才配置的信息即完成
Registry Mirrors:
  http://hub-mirror.c.163.com/
  https://docker.mirrors.ustc.edu.cn/
  https://registry.docker-cn.com/

Docker基本命令

基本命令

# 查看docker版本
docker version    

# 查看docker命令
docker --help 

# 查看docker详细信息
docker info

镜像images

# 从镜像仓库中拉取或者更新指定镜像
# -a :拉取所有tagged镜像
docker pull [OPTIONS] NAME

# 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker push [OPTIONS] NAME

# 列出本地镜像
# -a :列出本地所有的镜像
# -q :只显示镜像id
docker images [OPTIONS] 

# 删除本地一个或多个镜像
# -f :强制删除
docker rmi [OPTIONS] IMAGE [IMAGE...]

# 将指定镜像保存成tar归档文件
# -o :输出到的文件
docker save [OPTIONS] IMAGE [IMAGE...]

# 导入使用docker save命令导出的镜像
# -i : 指定导入的文件,代替 STDIN。
# -q : 精简输出信息。
docker load [OPTIONS]

# 从归档文件中创建镜像。
# -c :应用docker指令创建镜像
# -m :提交时的说明文字
docker import [OPTIONS] file|URL| - [REPOSITORY[:TAG]]

容器rootfs

# 创建一个新的容器并运行一个命令
# -i: 以交互模式运行容器,通常与 -t 同时使用
# -P: 随机端口映射,容器内部端口随机映射到主机的端口
# -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
# -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
docker run [OPTIONS] IMAGE

# 列出容器
# 默认列出所有在运行的容器信息
# -a:显示所有的容器,包括未运行的
docker ps [OPTIONS]

# 获取容器/镜像的元数据
# -f :指定返回值的模板文件
# -s :显示总的文件大小
docker inspect [OPTIONS] NAME

# 查看容器中运行的进程信息
docker top CONTAINER

# 连接到正在运行中的容器
docker attach CONTAINER

# 启动一个或多个已经被停止的容器
docker start CONTAINER 

# 停止一个运行中的容器
docker stop CONTAINER

# 进入容器内部
# 交互式面板
docker exec -it container-id bash

# 重启容器
docker restart

# 杀掉一个运行中的容器
# -s :向容器发送一个信号
docker kill [OPTIONS] CONTAINER

# 删除一个或多个容器
# -f :强制删除一个运行中的容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]

# 查看容器中运行的进程信息
docker top CONTAINER

# 退出并停止容器
exit

日志logging

docker logs [OPTIONS] CONTAINER

OPTIONS说明:
-f: 跟踪日志输出
-t:	显示时间戳
--since: 显示某个开始时间的所有日志
--tail:	仅列出最新N条容器日志

总结

  Docker在计算机技术日新月异的今天, Docker 在国内发展的如火如荼。特别是在一线互联网公司 Docker 的使用是十分普遍的,甚至成为了一些企业面试的加分项,掌握这门技术特别有必要,先简单的了解原理,多练就ok啦,感谢阅读!!!

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楼下安同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值