专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Docker

docker基础

镜像

查看当前所有镜像

docker images

拉取镜像

docker pull 镜像名:标签

如果不输入标签的话,默认采用最新的标签。如下:

docker pull nginx

删除镜像

docker rmi 镜像名:标签 或 镜像id

查看镜像历史

docker history <镜像名或镜像id>

查看镜像信息

docker inspect <镜像名或镜像id>

容器命令

查看所有容器

docker ps -a

查看正在运行的容器

docker ps

删除容器

docker rm 容器名或容器id

注意: 容器还在运行中时是不能删除的。要先停止容器才能删除。

重启容器

docker restart 容器名或容器id

停止容器

docker stop 容器名或容器id

清除所有未运行的容器

docker rm $(docker ps -a -q)

进入容器内部

要想进入容器内部,该容器必须是正在运行中的容器。

docker exec -it <容器ID> bash

解释:为什么要进入容器内部呢?

因为有时候我们需要把容器的文件夹或文件映射到宿主机上修改,然后自动同步到容器中。所以这样子改动起来就很方便了。

拷贝容器中的文件到宿主机上

注意:一定是要正在运行的容器。

语法: docker cp <容器ID或容器名称:tag>:容器中的文件夹或文件 宿主机中的文件夹或文件

如:有一个正在运行的容器的id69038cce96d4,我想拷贝容器中的文件夹/app/src到宿主机中的文件夹/root/src

docker cp 69038cce96d4:/app/src /root/src

  • /app/src 容器中的文件夹
  • /root/src 宿主机中的文件夹

然后,你会看到在root下生成了一个src文件夹。

实战运行容器

如:有一个正在运行的镜像的id69038cce96d41,容器内部的端口是1000

docker run -itd -p 1000:1000 –name demo1 69038cce96d41

  • -p 1000:1000 : 宿主机端口:容器端口,这是一种端口映射。
  • --name demo1 把这个容器的名字更改为demo1

问题来了:假如我要修改该容器中的部分代码怎么办呢? 就好比,我想增加一些接口或者功能, 我是不是得从容器的代码文件中修改呀,但是我怎么修改容器中的代码文件呢? 这就出现了文件挂载了。

步骤:

  • 首先第一步:我想先确认容器的代码文件是放在容器中的哪个文件夹中的。
  • 第二步:我想把容器中的文件挂载在哪个宿主机哪个文件夹中。

通过docker ps可以知道该容器的id69038cce96d42

实战第一步

进入容器内部

docker exec -it 69038cce96d42 bash

自行通过pwd可以知道容器中代码的文件夹路径 ,假如我进入容器内部发现代码都在/app/src文件夹中。

实战第二步

我想把容器中的代码文件夹/app/src映射到宿主机/root/data/code文件夹中。这里要注意一下:因为/root/data/code文件夹中什么文件也没有,而容器中的/app/src文件夹下是有很多代码文件的,所以在使用文件挂载的时候,这两个文件夹要统一。我们得把容器中的代码文件夹/app/src拷贝到宿主机的/root/data/code文件夹。

docker cp 69038cce96d42:/app/src /root/data/code

重置容器并挂载文件

停止容器

docker stop 69038cce96d42

删除容器

docker rm 69038cce96d42

重新运行并挂载文件

docker run -itd -p 1000:1000 -v /root/data/code:/app/src –name demo2 69038cce96d41

日志

查看容器日志

docker logs 容器id或容器名

查看日志大小及日志文件所在地

ls -lh $(find /var/lib/docker/containers/ -name *-json.log)

清理日志文件内容

truncate -s 0 /var/lib/docker/containers/3ee1a49546e369049836c07f6asdfasdf2b9e4af4b6ef8ff13393ed5a2b5c2bf528372/3ee1a49546e369049836c07f6c92b9e4af4b6ef8ff13393ed5a2b5c2sadfbf528372-json.log

怎么删除日志呢?

cd /var/lib/docker

rm -rf containers/*

查看容器映射路径

docker inspect -f "{{.Mounts}}" <容器id或容器名称>

其他命令

清理磁盘

docker system prune

可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。

文章永久链接:https://tech.souyunku.com/46826

未经允许不得转载:搜云库技术团队 » Docker

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们