docker exec -it 654be26ad354 bash
docker attach 654be26ad354
attach 直接进入容器启动命令的终端,不会启动新的进程。
exec 是在容器中打开新的终端,并且可以启动新的进程。
如果直接在终端查看启动命令的输出,用 attach,其他用 exec 。
容器按照用途大致分为两类:服务类容器和工具类容器。
服务类容器以 daemon 的形式运行,对外提供服务,比如 Web Server,数据库等。通过 -d 以后台的方式启动这类容器是非常合适的。如果要排查问题,可以通过 exec -it 进入容器。
工具类容器通常提供一个临时的工作环境,通常以 run -it 方式运行。
CMD, ENTRYPOINT, docker run 命令指定的命令运行结束时,容器停止运行。
通过 -d 参数在后台运行。
通过 exec -it 可以进入容器并执行命令。
指定容器可使用短 ID,长 ID,通过 --name 命名,docker rename 重命名。
docker stop [container]
docker kill [container]
docker start [container]
docker create [image] 使用已有镜像创建容器,容器名任意。
docker run 等同于 docker create && docker start
docker restart (docker stop && docker start)
#docker run -d --restart=always [image]
#docker run -d --restart=on-failure:3
意思是如果启动进程退出代码非零,则重启容器,最多重启三次。
docker pause [container] 暂停容器。
docker unpause [container] 恢复运行。
docker rm [ID1] [ID2] ...
docker rm $(docker ps -aq -f status=exited)