docker初学笔记

什么是docker

不准确的说,docker是一种轻量级的虚拟机,它把可执行文件和运行环境打包成一个image,放在容器里运行,但是启动速度比虚拟机快很多,资源消耗小。这种技术主要是为了解决部署环境的问题。

从远程仓库获取image

docker pull <image:[tag]>

同一个名字的image可以加tag,用于区分版本。如果不加tag,默认是latest

container操作

创建container

docker run [options] <image> <cmd>
  • -d daemon模式,后台运行
  • --name 设置名字。最好设置一个,要不然在stop、rm的时候要通过id访问,麻烦
  • --net networking模式,见后。
  • --rm 在container退出后即删除。否则container还会以“exited”的状态存在

container的名字不能重复。

停止、启动(只是暂时停止,不会删除,可以继续运行)

docker stop|start <container_id|container_name>

删除

docker rm [-f] <container_id|container_name>

如果创建container时设置了名字,可以通过名字访问,并且支持tab补全。

显示进程

docker的container在退出后并不会自动删除,而是以停止的方式仍然存在。

docker ps [options]
  • -a 显示所有的container。否则默认只显示正在运行的container
  • -q 只显示id。否则默认显示id、名字、对应的image、启动时间等信息

清除

docker没有clean之类的命令,只能自行删除 删除所有container

docker rm -f $(docker ps -aq)

删除所有image

docker rmi $(docker images -q)

networking模式

docker支持host和container间多种networking模式,一种是默认的模式,用ifconfig可以看到多了一个网络接口,container开放的端口是不能通过host的ip进行访问的。另一种是host模式(使用参数--net=host),这个模式中,container直接使用host的network stack,端口直接通过host对外暴露。

原文地址:https://www.cnblogs.com/aquastone/p/docker_first_note.html