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

相关推荐
虫小宝2 小时前
淘客app容器化部署方案:Docker与Kubernetes在返利系统中的实践
docker·容器·kubernetes
Danileaf_Guo2 小时前
让Ubuntu服务器变身OSPF路由器!实现服务器与网络设备直接对话
linux·运维·服务器·ubuntu
HalvmånEver2 小时前
Linux:库制作与原理(三)
linux·运维·服务器
chinesegf2 小时前
gunicorn 进程管理的常用命令
linux·运维·gunicorn
叫致寒吧2 小时前
docker的容器与操作
docker
木子欢儿2 小时前
在 Debian 13 上搭建一个 NTP (Network Time Protocol) 服务器
运维·服务器·开发语言·debian·php
weixin_462446232 小时前
【实践原创】docker inspect --format 详解:Go 模板在 Docker 中的应用
docker·容器·golang
❀͜͡傀儡师2 小时前
基于docker一键部署 x86的cpu_mem_hog 用于生成CPU和内存负载,用于服务器cpu和内存使用不达标的
java·服务器·docker