Docker常用命令合集

Docker的诞生

基本组成

镜像(image)

docker镜像就好比是一个模板,可以通过这个模板来创建容器服务。

tomcat镜像===>run==>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。

容器(container)

Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。

启动,停止,删除,基本命令!

目前就可以把这个容器理解为就是一个简易的linux系统

仓库(repository)

仓库就是存放镜像的地方!

仓库分为公有仓库和私有仓库!Docker Hub(默认是国外的)阿里云…都有容器服务器(配置镜像加速!)

底层原理

Docker工作原理

Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问!

DockerServer 接收到Docker-Client的指令,就会执行这个命令!

Docker为什么比VM快

  1. Docker有着比虚拟机更少的抽象层。
  2. 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 协议 ,转载请注明出处!