Docker基础-仓库、镜像、容器相关指令

image-20240620203244109

关系图:

img

Docker镜像

1
查看镜像:docker images

参数说明:

image-20240620200748485

各个选项说明:

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签, 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小

查找镜像

1
查找镜像:docker search xx

参数解释:

image-20240620200912128

NAME: 镜像仓库源的名称

DESCRIPTION: 镜像的描述

OFFICIAL: 是否 docker 官方发布

STARS: 类似 Github 里面的 star,表示点赞、喜欢的意思。

AUTOMATED: 自动构建。

拉取镜像

1
拉取镜像:docker pull xxxx

删除镜像

1
2
删除镜像:docker rmi xxx
注:删除镜像时,必须要停止该镜像的容器。

删除容器

1
docker rm container-id

更新镜像

docker commit -m ="message" -a ="chenym" 镜像id name

生成镜像

可以使用Dockerfile

docker build -t name .

. 表示在当前目录里找到dockerfile文件。

比如这种:

1
2
3
4
5
6
7
8
9
10
FROM    pdai/ubuntu:v1.0.1
MAINTAINER pdai "pdai.tech"

RUN /bin/echo 'root:123456' |chpasswd
RUN useradd pdai
RUN /bin/echo 'pdai:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D

运行镜像

1
docker run -it imageId /bin/bash

镜像标签

docker tag imageId tagName

  • docker tag 镜像ID,这里是 a733d5a264b5 ,用户名称、镜像源名(repository name)和新的标签名(tag)。
  • 使用 docker images 命令可以看到,ID为a733d5a264b5的镜像多一个v3.0.1标签。

镜像导出和导入

docker save > fileName imagesId

fileName:导出到哪个位置。

imageId:镜像id

docker load < fileName

fileName:导入哪个镜像

如果在启动容器后,容器内容有变化,需要备份,则使用export、import

Docker 容器

容器启动

1
docker run -it pdai/ubuntu:v2.0.1 /bin/bash

举例: pdai/ubuntu:v2.0.1 容器名称

/bin/bash:固定,可简写成bash

  • -it 可以连写的,表示 -i -t
  • -t: 在新容器内指定一个伪终端或终端。
  • -i: 允许你对容器内的标准输入 (STDIN) 进行交互

容器查看

docker ps -a

注:docker ps只是能看到在运行的容器,并不能看到异常容器或已经停止的容器;类似的还有镜像。

容器再次启动

docker start containerId

容器停止和重启

docker stop containerId

docker restart containerId

后台模式进入

-d 表示容器启动后以后台的模式运行,控制台返回容器id

第一种:docker attach containerId 退出后,容器终止

第二种:docker exe -it 容器id bin/bash 退出后,容器接着运行。

容器的导出和导入

注意,这里是容器的导出和导入。

docker export 容器id > fileName

docker import fileName 容器名称

强制停止容器

docker rm -f 容器id

清理停止的容器

docker container prune

容器别名及操作

1
docker run -itd --name newName oldName /bin/bash

容器错误日志

重点!!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
例:实时查看docker容器名为user-uat的最后10行日志
docker logs -f -t --tail 10 user-uat

例:查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2018-02-08" --tail=100 user-uat

例:查看最近30分钟的日志:
docker logs --since 30m user-uat

例:查看某时间之后的日志:
docker logs -t --since="2018-02-08T13:23:37" user-uat

例:查看某时间段日志:
docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" user-uat

例:将错误日志写入文件:
docker logs -f -t --since="2018-02-18" user-uat | grep error >> logs_error.txt

查看容器配置详情

docker inspect 容器id或容器名称

你可以看到,该容器使用的网络、容器、挂载卷等信息。

仓库

公有仓库

Docker hub,目前国内不可访问。

登录:

docker login

打tag:

docker tag 镜像名 镜像tag号

push到远端:

docker push 镜像id

这样就能推送到docker hub的私有仓库上。

私有仓库

需要私有化部署harbor仓库,类似于docker hub,但是属于企业内部访问。常与k8s合并使用。