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

相关推荐
Brilliantwxx5 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
BullSmall6 小时前
第三方软件安全-Dependency‑Track Docker 部署
安全·docker·容器
richdata6 小时前
商品数字化不是先做大数据,而是先把数据变成可用决策
大数据·运维·数据治理·商品数字化·智能补货·ai商品决策
harmony&6 小时前
Docker 容器技术从入门到实战:容器、网络、存储与监控全解析
docker·云原生
weixin_416667967 小时前
【无标题】
运维·服务器·网络
一池秋_8 小时前
arm低配linux设备,桌面应用冷启动提速方法
linux·运维·arm开发
上海云盾-小余9 小时前
流量攻击复盘:为什么 WAF 完好,业务依旧瘫痪
运维·服务器·网络
IT大白鼠9 小时前
Docker 私有仓库管理:Harbor 企业级仓库搭建与镜像全生命周期管理
运维·docker·容器
戴西软件9 小时前
戴西iDWS.3DViz Suite数据轻量化可视化软件,从传统桌面软件向云端协同的重大突破
大数据·运维·网络·人工智能·机器学习·3d
我命由我1234511 小时前
Linux - Linux/POSIX 路径斜杠折叠规则
linux·运维·服务器·android studio·android jetpack·android-studio·android runtime