28 April 2021
Docker 1 -- container基础
by Jerry Zhang
为什么要用Docker?
安装软件时,经常会因为环境不同导致各种问题,比如某个安装时需要的工具不存在,或者某个依赖不存在等等。使用Docker可以使软件运行在一个相对封装的环境中,不需要安装任何东西,拿来就能用。
运行一个container
docker run <image name>
- docker run = docker create + docker start
- docker create 是指copy所有的文件系统到container中,而docker start是指在这个container中,运行指定的命令
docker create <image name>
会打印出来刚创建的这个container的长id, 再运行docker start -a <长id>
就可以达到跟docker run 同样的效果。
也可以重写要在这个container中执行的命令:
docker run <image name> <command>
# docker run busybox ls
但是这个命令overite只能在创建时,一旦创建后就无法更改了。
查看当前正在运行的containers
docker ps
docker ps --all # 显示所有运行过的container,包括关掉的
删除所有的container和images
docker system prune
查看logs
docker logs <container id>
docker stop
docker stop/kill <container id>
运行的容器跟外部是隔绝的
当我们运行docker run redis
时,默认的命令是redis-server
。但此时,我们没办法直接通过redis-cli
使用redis,因为这个容器跟外部是隔绝的。
进入到容器内部
docker exec -it <container id> <command>
# docker exec -it <container id> sh
-i 是把当前的shell跟容器的输入连接,-t 是优化输出格式。
或者在创建时就用sh
docker run -it busybox sh