Docker常用命令合集
Docker的诞生
基本组成
镜像(image)
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务。
tomcat镜像===>run==>tomcat01
容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
容器(container)
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
启动,停止,删除,基本命令!
目前就可以把这个容器理解为就是一个简易的linux系统
仓库(repository)
仓库就是存放镜像的地方!
仓库分为公有仓库和私有仓库!Docker Hub(默认是国外的)阿里云…都有容器服务器(配置镜像加速!)
底层原理
Docker工作原理
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问!
DockerServer 接收到Docker-Client的指令,就会执行这个命令!
Docker为什么比VM快
- Docker有着比虚拟机更少的抽象层。
- docker利用的是宿主机的内核,vm需要是Guest OS。
所以说,新建一个容器的时候,docker不需要想虚拟机一样重新加载一个操作系统内核,避免引导。虚拟机是加载 GuestOS,分钟级别的,而docker是利用宿主机的操作系统吗,省略了这个复杂的过程,秒级!
安装
yum install -y yum-utils # 安装utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo # 设置储存库,可以改为国内镜像
yum install docker-ce docker-ce-cli containerd.io # 安装Docker
systemctl start docker # 启动Docker
systemctl enable docker.service # 开机自动启动docker
常用命令
帮助命令
docker version #显示docker的版本信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help #帮助命令
镜像命令
docker images
docker search
docker pull
docker rmi -f 容器id #删除指定的容器
docker rmi -f 容器id 容器id 容器id 容器id #删除多个容器
docker rmi -f $(docker images-aq) #删除全部的容器
容器命令
docker ps # 列出所有正在运行的容器
docker ps -a # 寻找已经停止运行的实例
docker run --restart=always # 创建容器并且设置为重启后自动运行
docker update --restart=always 容器id # 对已经创建的容器重启后启动容器
exit # 直接容器停止并退出
ctrl+P+Q # 容器不停止退出
docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,如果要
rm-f # 强制删除容器
docker rm-f $(docker ps-aq) # 删除所有的容器docker ps-a-qlxargs docker rm#删除所有的容器
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止当前正在运行的容器
docker ki11 容器id # 强制停止当前容器
docker logs # 查看日志
docker top # 查看容器中进程信息
docker inspect 容器id # 查看镜像元数据
docker exec -it 容器id # 进入容器后开启一个新的终端
docker attach -it 容器id # 进入容器正在执行的终端
docker cp 容器id:容器内路径 目标主机的路径 # 从容器内拷贝文件到主机上
#命令和git原理类似
docker commit-m="提交的描述信息”-a=”作者”容器id 目标镜像名:[TAG] # 提交容器成为一个新的副本
容器数据卷
docker run -it -v 主机目录:容器内目录 # 挂载数据卷
--volumes-from
DockerFile
FROM # 基础镜镜像,一切从这里开始构建
LABEL # 镜像是谁写的,姓名+邮箱
RUN # 镜像构建的时候需要运行的命令
ADD # 步骤:tomcat镜像,这个tomcat压缩包!添加内容WORKDIR#镜像的工作目录
VOLUME # 挂载的目录
EXPOSE # 保留端口配置
CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD # 当构建一个被继承DockerFile这个时候就会运行ONBUILD的指令。触发指令。
COPY # 类似ADD,将我们文件拷贝到镜像中
ENV # 构建的时候设置环境变量!
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!