Skip to content

容器化:Docker入门知识点总结

About 869 wordsAbout 3 min

docker

2024-02-15

简单对docker使用过程中一些知识进行整理总结。

一、Dokcer的安装

这里参考大佬在csdn上面的文章,完美安装。Ubuntu的docker详细安装教程

docker 使用的源:

{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://i3nc9nvv.mirror.aliyuncs.com",
    "https://docker.m.daocloud.io",
    "https://dockerhub.timeweb.cloud",
    "https://dockerpull.com",
    "https://docker.anyhub.us.kg",
    "https://dockerhub.jobcher.com",
    "https://dockerhub.icu",
    "https://docker.awsl9527.cn"
  ]
}

二、Docker的基础命令

2.1、Docker根据容器构建镜像

docker commit -a "cityhub" -m "cityhub_build_image_from_contain" 容器id 镜像名称:版本
# 实例
docker commit -a 'hahadeng' -m 'jupyterbook image' 0fc7a4932f59 python3.9_jupyterbook:0.0.1

docker commit : 从容器创建一个新的镜像

-a: 提交的镜像作者

-c:使用dockerfile指令来创建镜像

-m:提交时的说明文字

参考:Docker通过容器生成镜像(通过容器提交(docker commit)成镜像)

2.2、Docker镜像的导入导出

参考: docker镜像压缩导入导出

如果说镜像比较小的话,我们可以将镜像上传到dockerhub,但是有些情况,像是服务器镜像,经常包比较大;或者说服务器不能够连接到外网,这个时候,就需要将镜像压缩导出来,在其他的服务器上面使用。

导出:docker save cityhub/mysql5.7:v0.0.1 -o docker_cityhub_mysql.tar

导入:docker load -i docker_cityhub_mysql.tar

镜像压缩导入导出

压缩导出:docker save cityhub/mysql5.7:v0.0.1 | gzip > docker_cityhub_mysql.tar.gz

压缩导入:gunzip -c docker_cityhub_mysql.tar.gz | docker load

2.3、Docker构建通过Dockerfile构建镜像

docker build -t name:tag .

2.4、Docker查看日志操作

日志查看语法:

docker logs [OPTIONS] CONTAINER

OPTIONS说明:

  • -f 跟踪日志输出
  • --since: 显示某个开始时间的所有日志
  • -t:显示时间戳
  • --tail:仅列出最新的N条容器日志
docker logs -f 容器ID
docker logs -f --tail=100 容器ID  # 实时查看最后100条日志
docker logs --since 30m 容器ID  # 查看最近30分钟的日志
docker logs --since="2025-05-02" --tail=500 容器ID  # 查看某时间之后的日志的最新500条日志
docker logs --since="2025-05-02T00:00:00" 容器ID # 查看某时间之后的日志
docker logs -t --since="2025-05-02T00:00:00" --until "2025-05-02T12:00:00" 容器ID # 查看某时间段日志

三、Docker其他内容

3.1、清除Docker的日志

cat /dev/null > *-json.log

我们想要从根本上解决docker日志大的问题,我们可以设置容器日志的上限。

3.2、查看Docker 容器占用磁盘大小

docker system df -v
docker ps -s
# 查看容器内存、CPU使用情况等
docker stats --no-stream 
docker container stats

参考:获取Docker容器的内存使用情况

3.3、修改Docker镜像地址

很多时候我们都没有办法直接拉去到dockerhub里面的镜像,所有就需要做代理, 使用别人代理好的镜像地址:毫秒镜像

DockerHub 国内加速镜像列表

echo '{"registry-mirrors": ["https://docker.1ms.run"]}' | sudo tee /etc/docker/daemon.json > /dev/null
systemctl daemon-reload
systemctl restart docker

Linux tee命令是用户读取标准输入的数据, 并将其内容输出成文件。

四、问题处理

4.1、linux中docker报错:ERROR: Got permission denied while trying to connect to the Docker daemon socket。

切换到root用户

su root

添加docker用户组,把当前用户加入到组中。

sudo groupadd docker               #添加用户组
sudo gpasswd -a username docker    #将当前用户添加至用户组
newgrp docker                      #更新用户组

4.2、docker-ce、docker-ce-cli、containerd的关系

4.3、docker的rootless model

Rootless mode

Changelog

6/3/25, 1:49 AM
View All Changelog
  • d3a6d-Merge branch 'dev1'on

求求了,快滚去学习!!!

求求了求求了,快去学习吧!

【题单】贪心算法

不知道方向的时候,可以多看看书,书会给你指明下一步该干什么,加油!