Docker之镜像、容器的管理命令详解

一、docker的镜像操作

1、查看docker版本

docker version

在这里插入图片描述

2、搜索镜像

格式:docker search 服务名

[root@server1 ~]# docker search nginx
name表示镜像名字
DESCRIPTION 表示该镜像的功能
STARS表示下载热度

在这里插入图片描述

3、下载镜像

格式:docker pull 镜像名
[root@server1 ~]# docker pull nginx

在这里插入图片描述

4、查看已下载的镜像

[root@server1 ~]# docker images
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID号
SIZE 镜像大小

在这里插入图片描述

5、获取镜像的详细信息

格式:docker inspect 镜像ID号
[root@server1 ~]# docker inspect bc9a0695f571

在这里插入图片描述

6、添加镜像标签

[root@lserver1 ~]# docker tag nginx:latest nginx:web    #类似于别名

在这里插入图片描述

7、删除镜像

两种方式删除镜像
注意:删除某一个镜像时,只要有容器在使用某一个镜像,必须先删除容器,才能删除镜像。
(1)删除镜像+标签名

格式:docker rmi 仓库名:TAG标签
[root@server1 ~]# docker rmi nginx:latest

在这里插入图片描述
(2)删除镜像id
注意:只有当镜像id对应标签仅剩一个时,才能使用镜像id的方式进行删除;否则会出现报错
或者也可以在最后加上-f选项,一次性删除

格式:docker rmi 仓库名:TAG标签
[root@server1 ~]# docker rmi bc9a0695f571 -f

在这里插入图片描述
(3)批量删除镜像

docker rmi `docker images -q` -f  ##删除所有镜像

8、导出镜像

存出镜像并命名为httpd,存到/opt目录下

格式:docker save -o  绝对路径 文件名 镜像名
[root@server1 ~]# docker save -o /opt/httpd httpd:latest

在这里插入图片描述

9、载入镜像

[root@server1 ~]# docker load < /opt/httpd

在这里插入图片描述

10、上传镜像到公有仓库(必须要有docker官方账号,且创建公有仓库)

#登录
docker login
Username: docker
password:
Emall: xxx@xxx. com    #输入账号、密码
#上传
docker push 镜像名:标签名(一般公司使用私有仓库)

11、导出镜像dockerfile文件

docker history --format {{.CreatedBy}} --no-trunc=true (images) | sed "s?/bin/sh\ -c\ \#(nop)\ ??g" | sed "s?/bin/sh\ -c?RUN?g" | tac

二、容器的操作

1、创建容器(创建前必须有该镜像)

格式:docker create -it 镜像名 运行程序
[root@server1 ~]# docker create -it httpd:latest /bin/bash
-i  指容器的标准输入保持打开
-t  指Docker分配一个伪终端

2、查看容器运行状态

[root@server1 ~]# docker ps -a
-a:列出所有的容器,包括未运行的容器
Created:已创建
Up:运行中

在这里插入图片描述

3、开启容器,关闭容器

格式:docker start 容器ID号
[root@server1 ~]# docker start af255575064f

格式:docker stop 容器ID号
[root@server1 ~]# docker stop af255575064f

在这里插入图片描述
关闭所有运行容器

[root@server1 ~]# docker stop $(docker ps -q)

4、docker run命令

docker run命令会执行从创建容器,开启容器,执行命令,关闭容器等一系列过程。如果没有创建容器和镜像,就会从下载镜像开始执行,一直到关闭容器。执行完成后直接关闭,状态为exited(容器可以做一次性的处理,处理完就释放资源,做到了最小成本控制)

命令格式:docker run 镜像名 /bin/bash -c ls /
[root@localhost abc]# docker run mysql /bin/bash -c ls /
注释:
 /bin/bash指定运行环境,-c指定执行命令
[root@server1 ~]# docker run mysql /bin/bash -c ls /
Unable to find image 'mysql:latest' locally
latest: Pulling from library/mysql
852e50cd189d: Already exists 
...省略内容
b9940f97694b: Pull complete 
2f069358dc96: Pull complete 
Digest: sha256:4bb2e81a40e9d0d59bd8e3dc2ba5e1f2197696f6de39a91e90798dd27299b093
Status: Downloaded newer image for mysql:latest
bin
boot
dev
docker-entrypoint-initdb.d
entrypoint.sh
etc
home
...省略内容
tmp
usr
var
[root@server1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                          PORTS               NAMES
1d0c6e1883b3        mysql               "docker-entrypoint.s…"   About a minute ago   Exited (0) About a minute ago                       dazzling_jang
925e9193ca76        nginx:latest        "/docker-entrypoint.…"   8 minutes ago        Created                                             vigorous_haibt
17cd0a88b42c        httpd:latest        "httpd-foreground"       11 minutes ago       Up 5 minutes                    80/tcp              relaxed_taussig

5、进入容器与退出容器

进入容器(该容器一定要在Up状态)

格式:docker exec -it 容器ID /bin/bash
[root@localhost abc]# docker exec -it 17cd0a88b42c /bin/bash
exit    #退出容器

在这里插入图片描述

6、导出、导入容器

导出容器格式为:docker export 容器ID > /路径/定义容器名
[root@server1 opt]# docker export 1d0c6e1883b3 > /opt/mysql:web

在这里插入图片描述

注意:导入容器只会生成镜像,而不会创建容器

格式:cat 容器名 | docker import - 镜像:标签
[root@server1 opt]# cat /opt/mysql:web | docker import mysql:web
sha256:b7aed3a79a6a440ef1f81d6cb00c453abb1edc13be9377285b26e3c064a9d764

7、删除容器

容器必须是exited 关闭状态,才能删除

格式:docker rm 容器ID号
[root@server1 ~]# docker rm dc81b1a7e500

在这里插入图片描述

8、批量删除容器

第一种:
[root@server1 ~]# dcoker rm `docker ps -aq` 

在这里插入图片描述

第二种:
[root@server1 ~]# docker ps -a | awk '{print "docker rm"$1}' | bash    不能删除up状态的容器

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值