Docker

docker 是⼀个⽤ Go 语⾔实现的开源项⽬,可以让我们⽅便的创建和使⽤容器, docker 将程序以及
程序所有的依赖都打包到 docker container ,这样你的程序可以在任何环境都会有⼀致的表现,程序的表现只跟容器有关系,跟容器放在哪个操作系统没有关系。

如何使用docker

在 dockerfile (⽤来构建 docker 镜像的构建⽂件)中指定需要哪些程序、依赖什么样的
配置,之后把 dockerfile 交给 " 编译器 " docker 进⾏ " 编译 " ,也就是 docker build 命令,
⽣成的可执⾏程序就是 image ,之后就可以运⾏这个 image 了,这就是 docker run 命
令, image 运⾏起来后就是 docker container 。

docker指令

镜像仓库

docker pull:拉取镜像

docker push:推送镜像到仓库

docker logs:查看容器日志

docker exec:查看运行中的容器

本地镜像管理

docker save:导出镜像为文件

docker load:从文件导入镜像

docker images:列出本地镜像

docker rmi:删除本地镜像

docker run:创建并启动镜像

容器管理

docker stop:停止运行中的容器

docker start:启动停止的容器

docker ps:查看容器状态

docker rm:删除容器

Docker构建过程

Docker安装

查看系统内核

uname -r 4.18.0-80.11.2.el8_0.x86_64

yum更新到最新

sudo yum -y update

更新gcc:

yum -y install gcc

yum -y install gcc-c++

安装docker依赖包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum源

阿里云 (推荐)

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

清华大学源 (推荐)

sudo yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

更新yum软件包索引

yum makecache fast

查看仓库的docker版本

yum list docker-ce --showduplicates | sort -r

安装docker

yum -y install docker-ce docker-ce-cli containerd.io

启动docker并添加到自动开机

sudo systemctl start docker

systemctl enable docker

systemctl restart docker

暂停docker

systemctl stop docker

查看docker版本

docker --version

测试

ps -ef|grep docker

docker version

卸载docker

systemctl stop docker

yum remove docker-ce docker-ce-cli containerd.io

rm -rf /var/lib/docker

rm -rf /var/lib/containerd

docker常用指令

docker --help #Docker帮助

docker --version #查看Docker版本

docker search <image> #搜索镜像文件,如:docker search mysql

docker pull <image> #拉取镜像文件, 如:docker pull mysql

docker images #查看已经拉取下来的所以镜像文件

docker rmi <image> #删除指定镜像文件

docker run --name <name> -p 80:8080 -d <image> #发布指定镜像文件

docker ps #查看正在运行的所有镜像

docker ps -a #查看所有发布的镜像

docker rm <image> #删除执行已发布的镜像

Dockerfile

在Docker中构建镜像最常用的方式,就是使用Dockerfile。Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。官方文档:https://docs.docker.com/engine/reference/builder![](https://i-blog.csdnimg.cn/direct/80c05004966a4d29b8d7da258faf2278.png)

dockerfile常用指令

FROM #当前镜像基于那个

MAINTAINER # 指明镜像维护者及其联系方式

LABEL # 镜像指定标签

RUN # 构建镜像时运行的shell

ADD ...# 拷贝文件或目录到镜像,src 可以是一个本地文件,还可以是一个url。然后自动下载和解压

COPY ...# 拷贝文件或目录到镜像,不支持自动下载和解压

EXPOSE /... # 暴露容器运行时的监听端口给外部,可以指定端口是监听 TCP 还是 UDP,如果未指定协议,则默认为 TCP

ENV=...# 设置容器内的环境变量

CMD "executable","param1","param2" # 启动容器时执行的Shell命令。在Dockerfile中只能有一条CMD指令。如果设置了多条CMD,只有最后一条会生效

ENTRYPOINT "executable", "param1", "param2" # 启动容器时执行的 Shell 命令,同 CMD 类似,不会被 docker run 命令行指定的参数所覆盖,如果设置了多条ENTRYPOINT,只有最后一条会生效

WORKDIR param # 为 RUN、CMD、ENTRYPOINT 以及 COPY 和 AND 设置工作目录

VOLUME "param" #指定容器挂载点到宿主机自动生成的目录或其他容器。

参考链接:https://blog.csdn.net/weixin_44823875/article/details/131578800?ops_request_misc=&request_id=&biz_id=102&utm_term=docker%E6%9E%84%E5%BB%BA%E8%BF%87%E7%A8%8B&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-131578800.142^v102^pc_search_result_base8&spm=1018.2226.3001.4187

相关推荐
女神下凡32 分钟前
芯参谋(87):Linux 系统(SPI NOR)驱动开发指南
linux·运维·arm开发·驱动开发·嵌入式硬件·设计规范
海宇AI7 小时前
零信任架构实战:基于海宇个人风险报告构建自动化分期商城信用额度初审网关
运维·人工智能·架构·自动化
IMPYLH8 小时前
Linux 的时间为什么会被拨回去
linux·运维·服务器
2601_963282778 小时前
寒地窄带通信工程实践:黑龙江哈尔滨对讲机选型、组网与合规运维总结
运维·服务器·网络
叼烟扛炮9 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
我要见SA姐110 小时前
GitHub Actions 自动化:5 个真实运维提效案例
运维·数据库·机器学习·oracle·回归
Android系统攻城狮11 小时前
Linux FFmpeg深度解析之avcodec_flush_buffers调用流程与实战(十九)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频进阶
Y38153266212 小时前
用 httpx 写 SerpBase 异步客户端:连接池与超时配置
运维·服务器·数据库
倔强的石头10612 小时前
【Linux指南】进程通信系列(七):System V 信号量 —— 同步互斥的内核原语
linux·运维·服务器
废柴程序员_熊熊13 小时前
10 分钟用 Docker 搭一套私有 Gitea:HTTPS、SSH、CI、备份一次配齐
docker