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

相关推荐
艾莉丝努力练剑5 分钟前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
小天源8 分钟前
Cacti在Debian/Ubuntu中安装及其使用
运维·ubuntu·debian·cacti
说实话起个名字真难啊11 分钟前
用docker来安装openclaw
docker·ai·容器
Trouvaille ~30 分钟前
【Linux】TCP Socket编程实战(一):API详解与单连接Echo Server
linux·运维·服务器·网络·c++·tcp/ip·socket
恬静的小魔龙33 分钟前
【群晖Nas】群晖Nas中实现SVN Server功能、Docker/ContainerManager等
docker·svn·容器
芷栀夏38 分钟前
深度解析 CANN 异构计算架构:基于 ACL API 的算子调用实战
运维·人工智能·开源·cann
全栈工程师修炼指南1 小时前
Nginx | stream 四层反向代理:SSL、PREREAD 阶段模块指令浅析与实践
运维·网络·网络协议·nginx·ssl
Zfox_1 小时前
CANN Catlass 算子模板库深度解析:高性能 GEMM 融合计算、Cube Unit Tiling 机制与编程范式实践
docker·云原生·容器·eureka
威迪斯特2 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.2 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器