Docker常用命令总结

作者:卫珍佑 于 2020年05月13日 发布在分类/ Dokcer

一, docker 镜像管理常用命令

search : 查找镜像

info  查看 docker 的详细信息

version : 查看 docker 的版本信息

inspect 查看镜像的内容

pull     下载镜像

push :    上传镜像

rmi     删除镜像

save :  存出镜像(导出镜像)

load   载入镜像(导入镜像)

tag     给镜像改标签

1, 查看 docker 版本

 [root@localhost ~]# docker  info  #查看docker详细信息
 [root@localhost ~]# docker  version  #查看docker版本
  Client: Docker Engine - Community
 Version:       19.03.1
 API version:     1.40
 Go version:     go1.12.5
 Git commit:     74b1e89
 Built:        Thu Jul 25 21:21:07 2019
 OS/Arch:       linux/amd64
 Experimental:    false
 省略部分内容 ………

2, 查找 docker 镜像

格式:docker  search  镜像名称

[root@localhost ~]# docker search nginx
NAME              DESCRIPTION                   STARS  OFFICIAL   AUTOMATED
nginx           Official build of Nginx.             11780          [OK]               
jwilder/nginx-proxy    Automated Nginx reverse proxy for docker con… 1635          [OK]
richarvey/nginx-php-fpm  Container running Nginx + PHP-FPM capable of…  731          [OK]
linuxserver/nginx     An Nginx container, brought to you by LinuxS…  72   
bitnami/nginx       Bitnami nginx Docker Image              69          [OK]
tiangolo/nginx-rtmp    Docker image with Nginx using the nginx-rtmp…  51          [OK]
nginxdemos/hello      NGINX webserver that serves a simple page co… 21          [OK]
jc21/nginx-proxy-manager  Docker container for managing Nginx proxy ho…  21

  3,   下载 docker 镜像

格式: docker  pull  镜像的路径

[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
f5d23c7fed46: Pull complete
918b255d86e5: Pull complete
8c0120a6f561: Pull complete
Digest: sha256:eb3320e2f9ca409b7c0aa71aea3cf7ce7d018f03a372564dbdb023646958770b
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

4, 查看所有下载好的镜像

[root@localhost ~]# docker images
REPOSITORY   TAG     IMAGE ID          CREATED             SIZE
nginx     latest    e445ab08b2be        12 days ago           126MB

repository:   镜像所属的仓          tag:  镜像的标签信息          images ID:  镜像的唯一 ID

  created:  镜像创建时间                size: 镜像大小

5, 获取镜像的详细信息

   格式: docker  inspect 镜像的 images ID 

[root@localhost ~]# docker inspect e445ab08b2be

6,   为镜像添加新的标签

格式: docker  tag   源名称 : 标签    新的名称 : 标签

[root@localhost ~]# docker images
REPOSITORY          TAG      IMAGE ID       CREATED         SIZE
nginx           11111     e445ab08b2be     12 days ago        126MB
[root@localhost ~]# docker tag nginx:11111 nginx:latest
[root@localhost ~]# docker images
REPOSITORY          TAG      IMAGE ID         CREATED         SIZE
nginx            11111     e445ab08b2be      12 days ago        126MB
nginx            latest     e445ab08b2be      12 days ago        126MB

7, 删除镜像

格式 1  docker  rmi   镜像名称 : 标签 # 删除指定标签的镜像)  

格式 2  docker  rmi     镜像 ID  # 会删除该 ID 下所有的镜像,需谨慎!)

root@localhost ~]# docker images
REPOSITORY      TAG       IMAGE ID      CREATED      SIZE
nginx        11111      e445ab08b2be    12 days ago    126MB
nginx        22222      e445ab08b2be    12 days ago    126MB
nginx        latest       e445ab08b2be    12 days ago    126MB
[root@localhost ~]# docker rmi nginx:11111 # 删除指定标签的镜像
[root@localhost ~]# docker images
REPOSITORY      TAG       IMAGE ID      CREATED       SIZE
nginx        22222       e445ab08b2be    12 days ago     126MB
nginx        latest      e445ab08b2be    12 days ago    126MB
[root@localhost ~]# docker rmi nginx e445ab08b2be   
# 根据 image ID 删除所有相同 ID 的镜像
Untagged: nginx:latest
Untagged: nginx:22222
[root@localhost ~]# docker images
REPOSITORY   TAG    IMAGE ID       CREATED         SIZE

8 ,存出镜像和载入镜像

  当需要把一台服务器上的 docker 镜像迁移到另一台服务器上的时候,需要将镜像保存成本地文件,这一过程较存出镜像,可以使用 docker save 命令进行存出操作,之后可以复制该文件到其他机器。

导出镜像:

格式: docker  save  -o   本地名称    镜像名称

载入镜像:

格式 1  docker  load  存出的文件

格式 2 : docker  load  --input  存出的文件

示例:

导出镜像:

[root@bogon ~]# docker save -o nginx-17.tar nginx
[root@bogon ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  nginx-17.tar

载入镜像:

[root@bogon ~]# docker rmi nginx
[root@bogon ~]# docker load < nginx-17.tar   # 导入镜像
d8a33133e477: Loading layer [===========================>]  72.47MB/72.47MB
d0673244f7d4: Loading layer [===========================>]   57.2MB/57.2MB
fe6a7a3b3f27: Loading layer [============================>]  3.584kB/3.584kB
[root@bogon ~]# docker images
REPOSITORY    TAG     IMAGE ID    CREATED       SIZE
nginx     latest    e445ab08b2be  13 days ago      126MB

二, docker 容器管理常用

create : 创建容器 create  -it  nginx   /bin/bash

run :     创建容器并运行等于 create + start

start/sto p 启动或者停止容器

rm         删除容器

ps :         查看容器状态

export :    导出容器

import     导入容器

exec       进入容器

ctrl+p ctrl+q 退出容器并使容器后台运行

1 ,创建容器 (create)

Docker 的创建就是将镜像加载到容器的过程, docker 的容器十分轻量级,用户可以随时创建或删除,新创建的容器默认处于停止状态不运行任何程序,需要在其中发起一个进程来启动容器,这个进程是该容器唯一的进程,所以当该进程结束的时候,容器也就完全停止了,停止的容器可以重新启动并保留原来的修改,可以使用 docker create 来创建新的容器。

创建容器的格式:

docker  create  选项 [i t d]    镜像    运行的程序

docker  run -d -p80:80  -v/html:/var/www/hmtl   nginx 

常用选项:

  -i  让容器的输入保持打开

  -t   docker 分配一个伪终端

  -d  以守护进程的形式运行

## 使用 docker  create 创建容器之后会返回一个唯一的 ID 

[root@bogon ~]# docker create -it nginx /bin/bash
3cc90a93cf20685f9b55701f15d3f1bdde114c11aba24b5bf0f369cc70d5850a

2, 创建并运行容器 (run 命令 )

    执行 docker run 命令,等同于先执行 docker create 命令,再执行 docker start 命令。

注意: 容器是一个与其中运行的 shell 命令共存亡的终端 , 命令运行容器运行,命令结束容器退出。

格式  docker  run  -d  -p 80:80  -v /html:/usr/share/nginx/html  nginx 

 -d  后台运行

 -p  端口映射(把真机端口映射到 docker 虚拟机内)

 -v  目录映射(把真机上的目录映射到 docker 虚拟机内,类似于 mount 

[root@bogon ~]# docker run -d -p 80:80  -v /html:/usr/share/nginx/html  nginx
[root@bogon ~]# vim /html/index.html
   test1111111

3 ,查看容器的的状态

格式: docker  ps   参数

参数: -a 查看所有的容器   -q 只显示容器的 ID 

[root@bogon ~]# docker ps -a
CONTAINER ID  IMAGE   COMMAND     CREATED           STATUS    PORTS      NAMES
3cc90a93cf20  nginx  "/bin/bash"   8 seconds ago        Created            elegant_mccart

4 ,启动 / 停止容器

格式: docker  选项  容器 ID 

选项 (start  stop  kill )

[root@bogon ~]# docker ps -a
CONTAINER_ID IMAGE   COMMAND           CREATED      STATUS   PORTS       NAMES
3cc       90a93cf20 nginx"/bin/bash" 6 minutes ago Created          elegant_mccart
hy[root@bogon ~]# docker start 3cc
3cc
[root@bogon ~]# docker ps -a
CONTAINER ID IMAGE  COMMAND       CREATED         STATUS    PORTS      NAMES
3cc90a93cf20 nginx  "/bin/bash"  7 minutes ago  Up 4 seconds  80/tcp    elegant_mccarthy

5, 删除容器

格式: docker   rm 容器 ID 

[root@bogon ~]# docker rm 3cc
3cc
[root@bogon ~]# docker ps -a
CONTAINER ID IMAGE  COMMAND CREATED STATUS  PORTS  NAMES

6, 进入容器内进行操作

需要进入容器进行相应操作时,可以使用 docker exec 命令进入运行着的容器。   格式:

docker attach 容器 ID (需要容器的运行程序是 /bin/bash 

docker exec -it 容器 ID/ 名称 /bin/bash

 -i 选项表示让容器的输入保持打开;

 -t 选项表示让 Docker 分配一个伪终端。

[root@bogon ~]# docker ps -a
CONTAINER ID   IMAGE   COMMAND   CREATED   STATUS   PORTS     NAMES
0bfb5c88324a  nginx "nginx - #省略部分内容显示
[root@bogon ~]# docker exec -it 0bf /bin/bash
root@0bfb5c88324a:/# ls
bin  boot  dev etc home lib  lib64  media mnt opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@0bfb5c88324a:/# exit   #退出容器
exit
[root@bogon ~]#

7, 导出容器

格式: docker  export   容器 ID > 导出后的新名称

  例如:

[root@bogon ~]# docker export 0bfb5c88324a > nginx_run.tar
[root@bogon ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  nginx_run.tar

8, 导入容器

格式: cat   导出的容器名称   |  docker  import  -  导入后的镜像名称 : 标签

例如:

[root@bogon ~]# cat nginx_run.tar | docker import - nginx:running
[root@bogon ~]# docker images
REPOSITORY       TAG       IMAGE ID       CREATED       SIZE
nginx             running   60273fed9a5d    13 seconds ago   124MB
nginx          latest      e445ab08b2be     2 weeks ago     126MB
[root@bogon ~]# docker run -it -p 8001:80 nginx:running /bin/bash
root@d2d30aeb1453:/#nginx          #启动nginx
root@d2d30aeb1453:/# ctrl+p   ctrl+q     #退出并让容器后台运行

浏览器访问本机 IP  8001

9, 把宿主机的文件导入容器内

Docker默认的存储目录位于 /var/lib/docker,docker 的镜像、容器、日志等全部都存储在此,可以单独使用大容量的分区来存储这些内容,并且一般选择建立 LVM 逻辑卷,从而避免 docker 运行过程中存储目录容量不足。

文件导入:

格式:  docker  cp  源文件路径    容器 ID: 容器内的位置路径

例如:

[root@bogon ~]# docker cp  /root/anaconda-ks.cfg  ce6f7a9351a8:/tmp
[root@bogon ~]# docker exec -it   ce6f7a9351a8  /bin/bash
root@ce6f7a9351a8:/# ls /tmp/
anaconda-ks.cfg



分享到朋友圈 分享到微信
发表评论
验证码