Docker-仓库&镜像&容器操作命令

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们在上一章,讲了虚拟化,虚拟化是把硬件虚拟化,然后创建出来的虚拟机完全隔离,而Docker则是软件(内核)虚拟化,他的隔离性会低于虚拟机。我们将通过3-4周来讲解Docker相关内容,由于涉及到内容较多,就不一一列出来具体的细节,主要从以下几个方面来讲解:

Docker基本情况

Docker基本命令(本小节属于)

Dockerfile

Docker镜像

Docker仓库

Docker原理

Docker网络&存储&日志

Docker-Compose

Docker番外篇

我们上小节讲了docker的生命周期范围的一些命令,重点是run命令,今天我们讲讲镜像和容器操作命令。

仓库&镜像操作

docker login : 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub。

docker logout : 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub。

大部分公开仓库都是可以直接下载的,并不需要认证;但是上传一般都需要认证。

docker pull : 从镜像仓库中拉取或者更新指定镜像,如果本地存在同名镜像,则不会真下载。如果仓库镜像更新(名字未变),则会真下载镜像,原有镜像镜像的tag会变成<none>。

#这里由于是本地存在该镜像,所以它并没真正下载,只是进行了比对
[root@localhost ~]# docker pull  192.168.31.43:5000/centos:7
7: Pulling from centos
Digest: sha256:7ba542bde95e6523a4b126f610553e3657b8108bc3175596ee7e911ae1219bfc
Status: Image is up to date for 192.168.31.43:5000/centos:7
192.168.31.43:5000/centos:7

docker push : 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库。

docker search : 从Docker Hub查找镜像,这个使用较少。

docker images : 列出本地镜像。

[root@localhost ~]# docker images
REPOSITORY                  TAG       IMAGE ID       CREATED       SIZE
192.168.31.43:5000/centos   7         3b25b682ea82   7 weeks ago   192MB
192.168.31.43:5000/nginx    latest    3b25b682ea82   7 weeks ago   192MB

docker rmi : 删除本地一个或多少镜像,可以是容器名字+tag,也可以是镜像id,正在使用的镜像不能删除。

docker tag : 标记(复制)本地镜像,将其归入某一仓库。修改或者复制以后才能上传到对应的仓库。比如从公网下载的镜像,要传输到私有仓库,就必须经过这个步骤。​​​​​​​

#镜像id是一样的,可以理解为linux硬连接
#并不会多占用空间
[root@localhost ~]# docker images
REPOSITORY                  TAG       IMAGE ID       CREATED       SIZE
192.168.31.43:5000/centos   7         3b25b682ea82   7 weeks ago   192MB
[root@localhost ~]# docker tag 192.168.31.43:5000/centos:7 192.168.31.43:5000/nginx
[root@localhost ~]# docker images
REPOSITORY                  TAG       IMAGE ID       CREATED       SIZE
192.168.31.43:5000/nginx    latest    3b25b682ea82   7 weeks ago   192MB
192.168.31.43:5000/centos   7         3b25b682ea82   7 weeks ago   192MB

docker build 命令用于使用 Dockerfile 创建镜像,这个后面我们讲构建镜像的时候单独讲,还有个docker commit 是把正在运行的容器变成镜像,这个使用也比较少。

docker history : 查看指定镜像的创建历史,这个信息可以看出来这个容器是如何构建的。

图片

docker save : 将指定镜像保存成 tar 归档文件。

docker load : 导入使用 docker save 命令导出的镜像。​​​​​​​

[root@localhost ~]# docker save -o nginx.tar.gz 192.168.31.43:5000/nginx
[root@localhost ~]# ls
docker-registry-2.8.3.tar.gz  nginx.tar.gz
[root@localhost ~]# docker load -i nginx.tar.gz 
Loaded image: 192.168.31.43:5000/nginx:latest

适合没有网络的情况,通过文件传输来实现镜像的迁移和传输。

docker image prune –a: 删除未使用的镜像,长期使用以后,本地的镜像和tag会越来越多,而这个命令可以清理掉所有未使用的镜像。

docker container prune:则是删除所有退出状态的容器。

容器操作

docker ps : 列出容器,-a 则会把所有状态的容器都列出来。

docker inspect : 获取容器/镜像的元数据,可以理解就是Docker-详细信息和目录介绍containers目录下的内容。

docker top : 查看容器中运行的进程信息

图片

docker status : 查看容器资源占用情况,它是个死循环命令,会持续输出容器的资源占用情况。​​​​​​​

[root@localhost ~]# docker stats 49e
CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O     BLOCK I/O     PIDS
49eeb46bbe67   nginx     0.00%     1.809MiB / 990.9MiB   0.18%     656B / 0B   0B / 5.63kB   2

docker attach : 连接到正在运行中的容器,这个使用较少。

docker exec : 进入容器或者在容器中执行命令,这个操作就等于通过ssh或者控制台进入到容器内部,可以看到里面的文件和网络情况,但是容器里面都是裁剪得比较厉害,好多命令都是没有的。

图片

docker cp : 本地与容器进行数据交互,可以把本地的文件复制到容器里面或者把容器文件复制到本地。​​​​​​​

[root@localhost ~]# docker cp nginx.tar.gz  49e:/tmp/
Successfully copied 196MB to 49e:/tmp/
[root@localhost ~]# docker cp 49e:/tmp/nginx.tar.gz  /tmp/
Successfully copied 196MB to /tmp/

docker logs : 获取容器的标准输出日志,这个日志只能是容器的标准输出的日志。这个命令类似linux基础里面的tail 命令。也支持类似的参数的。

图片

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值