docker常用命令 汇总与docker命令详细使用教程

docker常用命令和docker容器管理

1. docker基础操作

  1. docker镜像(Images): docker镜像是一个只读的模板,用于创建docker容器,包含了运行应用程序所需要的所有内容:代码、运行时、库、环境变量和配置文件。
  2. docker容器(Containers): docker容器是docker镜像的运行实例。可以看做是一个轻量级的独立系统环境。容器在启动时会创建一层可写层作为最上层,其下层都是只读的
  3. docker Hub/Registry: docker Registry是docker镜像的存储仓库,类似于代码的版本控制,可以公开或私有的存储和分发镜像。docker Hub是 docker公司维护的一个公开的Registry
  4. Dockerfile: Dockerfile是一种由一系列命令和参数构成的脚本,这些命令应用于基础镜像并创建新的docker镜像

1.1 docker search查找镜像

[root@master ~]# docker search centos NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED centos                                       DEPRECATED; The official build of CentOS.       7601      [OK]        kasmweb/centos-7-desktop                     CentOS 7 desktop for Kasm Workspaces            38                    couchbase/centos7-systemd                    centos7-systemd images with additional debug…   8                    [OK]  解释说明: NAME: 镜像仓库源的名称 DESCRIPTION: 镜像的描述 OFFICIAL: 是否 docker 官方发布 stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。 AUTOMATED: 自动构建。 

1.2 docker pull下载镜像

[root@master ~]# docker pull centos

1.3 docker push将本地的镜像推送到远程镜像仓库

[root@master ~]# docker push centos #默认会尝试推送到Docker Hub #而 Docker Hub 的 centos 镜像是受保护的,只有认证的发布者才能更新 如果你希望将镜像推送到你自己的Docker Hub仓库,你需要先登录到 Docker Hub,然后按照<你的Docker Hub用户名>/<镜像名>:<标签> 的格式对镜像进行标记,然后再推送 [root@master ~]# docker login [root@master ~]# docker tag centos <你的 Docker Hub 用户名>/centos:tag [root@master ~]# docker push <你的Docker Hub用户名>/centos:tag  #如果你希望将镜像推送到私有 Docker Registry,你需要先对 Docker 镜像进行标记,然后再推送 [root@master ~]# docker tag centos <你的私有 Registry 地址>/centos:tag [root@master ~]# docker push <你的私有 Registry 地址>/centos:tag

如果你想将镜像推送到自建的harbor私有镜像仓库,请点击下面的文档查看:

当然也可以推送到阿里云,华为云,腾讯云等镜像仓库

1.4 docker images 查看本地镜像

[root@master ~]# docker images

1.5 docker save把镜像做成离线包

[root@master ~]# docker save -o centos.tar centos # -o 参数用于指定输出文件的路径和名称

1.6 docker load 从离线包导入docker镜像

[root@master ~]# docker load -i centos.tar # -i 参数用于指定输入文件的路径和名称

1.7 docker rmi 删除镜像包

用于删除一个或多个docker镜像

# -f 参数会强制删除镜像,即使有停止的或者运行中的容器也会强制删除 [root@master ~]# docker rmi -f centos:latest

2. 容器相关操作

2.1 docker run运行容器

[root@master ~]# docker run --name nginx -p 80:80 -d nginx:latest  #--name nginx:这个参数为新启动的容器指定一个名称 #-p 80:80:这个参数将容器的80端口映射到宿主机的80端口。冒号前的80是宿主机的端口号,冒号后的80是容器内的端口号 #-d:这个参数让docker在后台运行容器,并返回容器ID。也就是说,容器在启动后不会占用命令行界面 #nginx:latest:这是想要运行的docker镜像的名称和版本。在这里使用最新版本的nginx镜像 #整个命令的意思是:启动一个名为 "nginx" 的容器,使用最新版本的nginx镜像,将容器的80端口映射到宿主机的80端口,并在后台运行这个容器 #一旦这个命令执行,你就应该可以通过浏览器访问宿主机的80端口,看到nginx的欢迎页面 #如果你无法看到nginx欢迎页面,可能是因为防火墙或者其他安全设置限制了对80端口的访问,或者这个端口已经被其他服务使用

2.2 docker ps 查看正在运行的容器

#查看正在运行的容器 [root@master ~]# docker ps CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                NAMES ded9b31818d6   nginx:latest   "/docker-entrypoint.…"   57 seconds ago   Up 56 seconds   0.0.0.0:80->80/tcp   nginx  #查看所有容器,包括运行和退出的容器 [root@master ~]# docker ps -a   #流量走向: 访问物理节点ip:port(容器在物理节点映射的端口)--容器ip:port(容器里部署的服务的端口)->就可以访问到容器里部署的应用了

2.3 docker stop 停止容器

[root@master ~]# docker stop nginx

2.4 docker start 启动容器

[root@master ~]# docker start nginx

2.5 docker exec 进入容器

[root@master ~]# docker exec -it nginx /bin/bash # -i 交互式 # -t 分配伪终端 # nginx为容器的名称,也可以指定container_id # /bin/bash说明你的shell类型为bash

2.7 docker rm 删除容器

#只能删除已经停止运行的容器,除非使用-f选项来强制删除 [root@master ~]# docker rm  nginx #需要提供一个或多个容器ID或容器名称作为参数  #强制删除正在运行的容器 [root@master ~]# docker rm -f nginx

扩展:

docker rm 和docker rmi的区别:

docker rm 删除容器
docker rmi 删除镜像

2.8 查看帮助

[root@master ~]# docker --help

或者查看官方文档

2.9 docker build 需结合dockerfile使用

详细内容,请点击下方链接查看