容器的创建 - docker create
- 作用
- 利用镜像创建出一个Created 状态的待启动容器
- 命令格式
- docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
- 常用参数(OPTIONS)
- -t, --tty 分配一个伪TTY,也就是分配虚拟终端
- -i, --interactive 即使没有连接,也要保持STDIN打开
- -- name 给容器命名,如果没有会随机产生
- 常用参数(COMMAND\ARG)
- COMMAND 表示容器启动后,需要在容器中执行的命令,如ps、Is 等命令ARG 表示执行 COMMAND 时需要提供的一些参数,如ps 命令的 aux、Is命令的-a等等
docker create --name centos-test centos ls -a
容器的删除 - docker rm
- 作用
- 删除一个或者多个容器
- 命令格式
- docker rm [OPTIONS] CONTAINER [CONTAINER...]
- 常用参数
- -f, --force 强制删除正在运行的容器(使用SIGKILL),正在运行或者暂停运行的容器会使用到
docker rm test-centos
容器的启动 - docker start
- 作用
- 启动一个或者多个容器,created状态和exited状态都可以使用start来启动
- 命令格式
- docker start [OPTIONS] CONTAINER [CONTAINER...]
- 常用参数
- -a, --attach 将当前终端的标准输出绑定到容器中
- -i, --interactive 即使没有连接,也要保持STDIN打开
docker start test-centos
容器的创建并启动 - docker run
- 作用
- 创建并且启动一个容器
- 命令格式
- docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
- 常用参数
- -t, --tty 分配一个伪TTY,也就是分配虚拟终端
- -i, --interactive 即使没有连接,也要保持STDIN打开
- -d, --detach 容器在后台运行,并且返回容器id
这里的 docker run 相当于 docker create + docker start -a 会自动把终端绑定到容器,如果命令需要提供终端和各种输入,就需要加上 -ti 参数,例如: docker run -ti python,这样就会直接进入终端,如果想要不进入终端或者不打印日志,实现 docker create + docker start 效果,就要加上参数 -d ,该参数表示在后台运行
补充:
# --rm 参数的意思是该容器一旦关闭就会被删除
docker run -dti --rm centos bash
容器的关闭 - docker stop
- 作用
- 暂停正在运行(running)的容器
- 命令格式
- docker stop [OPTIONS] CONTAINER [CONTAINER...]
- 常用参数
- -t, --time int 延迟关闭时间,这里默认是十秒钟
这里的docker stop 默认会延迟十秒钟关闭,如果在这个时间期间你强行使用ctrl + c 来取消关闭是无法阻止容器关闭的,还有一点就是对一个已经关闭的容器进行关闭是没什么问题的,也就是说不管容器当前状态是否是关闭状态的,使用该命令都会将容器改为关闭状态
容器的关闭 - docker kill
- 作用
- 杀死正在运行的容器,会立即杀死不会有延迟
- 命令格式
- docker kill [OPTIONS] CONTAINER [CONTAINER...]
- 常用参数
- -s, --signal 发送给容器的信号,默认是"KILL"
docker kill 与 docker stop -t 0 有什么区别?
kill 命令给容器传递的信号是SIGKILL信号,如果是stop 命令会先给容器发送SIGTERM信号,然后经过-t 的时间之后再发送SIGKILL信号.SIGTERM 会提前告诉进程会关闭,让进程回收内存等等(所以SIGTERM 不一定会暂停) ,更建议使用stop命令
kill的信号可以使用 kill -l 来查看
kill -l
容器的暂停 - docker pause
- 作用
- 暂停正在运行的容器
- 命令格式
- docker pause CONTAINER [CONTAINER...]
解除容器暂停 - docker unpause
- 作用
- 让暂停(Paused状态)的容器运行
- 命令格式
- docker unpause CONTAINER [CONTAINER...]
容器的重启 - docker restart
- 作用
- 重启容器
- 命令格式
- docker restart [OPTIONS] CONTAINER [CONTAINER...]
- 常用参数
- -t, --time 定时重启
容器的详细信息 - docker container inspect
- 作用
- 查看容器详细信息
- 命令格式
- docker container inspect [OPTIONS] CONTAINER [CONTAINER...]
- 常用参数
- -f, --format
docker inspect -f '{{.Config.Image}}' my_container
容器的日志信息 - docker logs
- 作用
- 查看容器里面的日志信息
- 命令格式
- docker logs [OPTIONS] CONTAINER
- 常用参数
- --details 提供日志的详细信息
- -f, --follow 跟踪COMMAND输出
- -t, --timestamps 显示打印时间
logs查看的是COMMAND的输出结果
容器的重命名 - docker rename
- 作用
- 修改容器的名称
- 命令格式
- docker rename CONTAINER NEW_NAME
容器运行时操作 - docker attach
如果当前有几个容器在后台运行,这时候想连接容器,查看里面进程的运行状态,或者说在容器当中执行其他命令,就需要用到该操作(会绑定到主进程)(pid为1的)
- 作用
- 将当前输入,当前输出,标准错误流连接到容器中
- 命令格式
- docker attach [OPTIONS] CONTAINER
容器运行时执行新命令 - docker exec
如果我们想执行一些命令,但又不想影响整个容器主进程的运行,那么就应该使用exec
如果想查看主进程的状态,并且希望操作都能够影响主进程那么就应该使用attach命令
- 作用
- 在容器当中执行新命令
- 命令格式
- docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
- 常用参数
- -t, --tty 分配一个伪TTY,也就是分配虚拟终端
- -i, --interactive 即使没有连接,也要保持STDIN打开