Docker踩坑日记¶
1. 前言¶
我们平常也会使用Docker跑一些服务,但使用的功能只是全部功能的一小部分。Docker本身功能很多,命令也很多。作为一个非专业的开发人员,谨以此文记录下我在其中踩过的坑。
2. 踩坑¶
2.1 启动容器¶
Docker容器后台运行,必须有一个持久的前台进程。否则的话,容器会自动退出。
常见的做法是我们在Dockerfile中用CMD或是ENTRYPOINT声明我们要跑的命令。或是我们在Docker run的时候在后面声明命令。但是,有的时候我们的命令可能没法简单地写在这里。
这时,我们可以以守护进程的方式启动容器。
docker run -itd 镜像id
通过以下命令,我们可以进入容器。
docker exec -it 容器id /bin/bash
在容器中,我们就可以自由地执行我们的命令了。
最后我们用Ctrl+P+Q退出容器,但不关闭容器。
2.2 文字编辑器¶
原生的Linux环境可能没有文字编辑器。我们可以通过cat > file将内容贴到文本中,但是这种方式十分不友好。
Vim是常用的Linux下的文字编辑器。我们可以通过如下命令安装Vim。
apt-get update
apt-get install vim
2.3 查看容器状态¶
查看容器内运行的进程:
docker top 容器id
对于不想要的进程,我们可以使用如下命令结束进程:
kill -9 PID
查看容器内运行进程的log
docker logs -f -t --tail 20 容器id
2.4 清理无用的数据卷¶
我们往往会使用Docker创建、删除容器。长此以往,容器挂载的数据卷容易产生一些僵尸文件(未绑定容器等)。
我们可以使用如下命令找到僵尸文件:
docker volume ls -qf dangling=true
并删除这些僵尸文件。
docker volume rm $(docker volume ls -qf dangling=true)
3. 总结¶
这些只是作者在使用Docker过程中踩过的坑,学到的知识,并没有面面俱到。Docker仍有不少探索的空间。
希望读者能少踩一些坑,少碰到一些Bug。
Viewed times