每天进步一点点 - Docker的基本使用

210 阅读4分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第7天,点击查看活动详情

1、序言

之前对于的Docker的了解,仅限于那几个基本命令,Docker imagesDocker searchDocker pull等,但是最近对于Docker的使用以及知识需求程序直线上升,所以在学习过程中,记录一下常用的命令以及使用。

2、常用操作

2.1 配置Docker镜像加速

Docker默认的镜像拉取地址是在国外网站,速度一般都比较慢,所以针对国内也有几种免费的加速方式,什么阿里云、七牛云等等,由于自己有买阿里云的服务器,所以就直接操作阿里云的了。

  1. 访问阿里云镜像配置网址,然后根据操作一步一步来,会得到一个针对自己的阿里云加速地址;
  2. 编辑配置文件:daemon.json添加一下自己的加速地址,操作如下:
1. vim  /etc/docker/daemon.json

2. 添加下面配置:
{
    "registry-mirrors": ["阿里云地址"],
    "live-restore": true
}
  1. 添加完毕之后,刷新一下配置,重启。
systemctl daemon-reload

systemctl restart docker

2.2 搜索镜像

基本语句:docker search xxxx

额外参数:一般来说,基本用不到额外参数;官方说明

参数默认值说明
--no-trunc显示搜索出的镜像完成的说明
--limit25展示几条内容
--filter / -f过滤条件
--format格式化样子

2.3 下载镜像

基本语句:docker pull [OPTIONS] NAME[:TAG|@DIGEST]

额外参数:一般也用不到;官方说明

参数默认值说明
-a下载存储库中的所有标记镜像
--disable-content-trusttrue跳过镜像验证
--platform如果服务器支持多平台,则设置平台(这个参数需要API版本为1.32+)
-q简化下载输出

说明:如果下载的时候,名称后面的Tag或者DIGEST没有指定,则默认下载最新版本。

2.4 查看所有镜像

基本语句:docker images

额外参数:偶尔会用到-a -q,高级点的用到-f --format,详见:官方说明

命令默认值说明
--all , -a显示所有镜像(默认隐藏中间镜像)
--digests显示摘要
--filter , -f过滤
--format格式化
--no-trunc不要截断输出
--quiet , -q仅显示镜像 ID

说明:有一些平常会用到的关于镜像的命令

1. 查看关于java的所有镜像:docker images java
2. 查看当前所有的镜像ID:docker images -a -q
3. 查看所有没有用到的镜像ID:docker images -a -q -f "dangling=true"
4. 查看label是test的所有镜像:docker images --filter "label=test"

2.5 运行镜像

基本语句:docker run --name="自定义的名称" -d -p 33301:22 {镜像名称或者ID}

额外参数:额外的有点多,就不在这介绍了,查阅官方文档吧。

2.6 查看运行的容器

基本语句:docker ps

额外参数:一般会用到-a -q,其余的很少用了就。

命令默认值说明
--all , -a显示所有容器(默认显示运行)
--filter , -f过滤输出
--format格式化
--last , -n-1显示 n 个最后创建的容器(包括所有状态)
--latest , -l显示最新创建的容器(包括所有状态)
--no-trunc不要截断输出
--quiet , -q只显示容器ID
--size , -s显示总文件大小

说明:一些常用的命令

1. 查看所有的容器:docker ps -a
2. 查看现在运行的容器ID: docker ps -q

2.7 操作容器

基本语句:docker exec [OPTIONS] {容器ID} {参数} [ARG...]

额外参数:基本必用的是:-it xxxx /bin/bash

命令默认值说明
--detach , -d在后台运行
--interactive , -i即使没有连接,也保持 STDIN 打开
--tty , -t分配一个伪终端

就列三个吧,其余的有版本要求或者基本用不到的,详见官网文档

说明:一些常用的命令

# 这里面的kafka是在run的时候声明的容器名称,也可以换成容器ID;
1. 进入某个容器的命令行界面:docker exec -it  kafka /bin/bash 就是进入了它的终端界面,可以进行Liunx一样的操作;
2. 在某个容器里面运行某个脚本:docker exec -it kafka /bin/sh /root/kafka.sh 

3、一般操作

3.1 清除一些不用的镜像

基本语句: docker system prune

额外参数:一般结合-a -f ,意思是清空所有的,直接不用确认就清楚。

组装语句:借用其余shell命令

docker ps -a | grep "Exited" | awk '{print $1 }'| xargs docker stop 
docker ps -a | grep "Exited" | awk '{print $1 }'| xargs docker rm 
docker images| grep none |awk '{print $3 }'| xargs docker rmi

3.2 查看Docker信息

基本语句:docker info