Docker常用命令

分类: Docker

一、Dockerfile命令

  • 构建dockerfile命令
  1. docker build -t 镜像名<全小写> .

注意:命令最后的.不要忽略


二、docker-slim命令

  1. docker-slim 可以大幅压缩优化镜像体积,但是压缩后注意镜像能否正常运行。
安装docker-slim

https://github.com/docker-slim/docker-slim

压缩镜像命令
  1. docker-slim build 本地镜像库中已存在的镜像名

目前发现tornado项目中的logging的文件目录原镜像无问题,压缩后提示无法打开日志文件问题。建议压缩后测试镜像是否能正常运行。

三、容器命令

  • 查看所有容器信息
  1. docker ps -a
  2. docker container ls -a
  • 删除所有容器
  1. docker rm -f `docker container ls -aq`

docker rm -f 如果要删除一个运行中的容器,可以添加 -f 参数。Docker 会发送 SIGKILL 信号给容器。

删除指定容器<容器处于终止状态>
  1. docker rm 容器id
暂停所有容器
  1. docker stop `docker container ls -aq`
导出容器快照

如果要导出本地某个容器,可以使用 docker export 命令。

  1. $ sudo docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 7691a814370e ubuntu:14.04 "/bin/bash" 36 hours ago Exited (0) 21 hours ago test
  4. $ sudo docker export 7691a814370e &gt; ubuntu.tar
导入容器快照到本地镜像库

可以使用 docker import 从容器快照文件中再导入为镜像

  1. $ cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0
  2. $ sudo docker images
  3. REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
  4. test/ubuntu v1.0 9d37a6082e97 About a minute ago 171.3 MB

*注:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。

显示所有包含指定关键字的容器的id
  1. docker ps -a|grep gyaward|awk '{print $1}' 常用于快速批量删除指定的容器
  1. [root@localhost nginx]# docker ps -a|grep gyaward
  2. b5fb10aa7015 nodcat/gyaward "venv_linux/bin/pyth&hellip;" 3 minutes ago Exited (137) About a minute ago vigilant_goodall
  3. 5ef9bd25f1a7 nodcat/gyaward "venv_linux/bin/pyth&hellip;" 3 minutes ago Exited (137) About a minute ago eager_boyd
  4. bc5a07c1b057 nodcat/gyaward "venv_linux/bin/pyth&hellip;" 3 minutes ago Exited (137) 58 seconds ago unruffled_ride
  5. 5aca9c16af20 nodcat/gyaward "venv_linux/bin/pyth&hellip;" 4 minutes ago Exited (137) 44 seconds ago quizzical_hoover
  6. [root@localhost nginx]# docker ps -a|grep gyaward|awk '{print $1}'
  7. b5fb10aa7015
  8. 5ef9bd25f1a7
  9. bc5a07c1b057
  10. 5aca9c16af20

四、镜像命令

查看所有镜像
  1. docker images -a
删除所有镜像
  1. docker rmi -f `docker images -aq`
  1. docker rmi -f 强制删除镜像
删除指定镜像
  1. docker rmi 镜像id
创建一个新的容器并运行一个命令

基本格式:run [OPTIONS] IMAGE [COMMAND] [ARG...]

详细命令:Docker run 命令

  1. root@nodcat-VirtualBox:~# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. nodcat/gyaward latest 36fcb114d55e 6 hours ago 314MB
  4. ubuntu latest 0458a4468cbc 12 days ago 112MB
  5. root@nodcat-VirtualBox:~# docker ps -a
  6. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  7. root@nodcat-VirtualBox:~# docker run -d -p 9001:8002 -v /home/nodcat/python_workspace/logs/9001/:/var/python_workspace/GYAward/log nodcat/gyaward
  8. f90bff370e31fc0d89325cdb89bc8be1ae249b2ab82bf61497e6f0bdd42d972c
  9. root@nodcat-VirtualBox:~# docker ps -a
  10. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  11. f90bff370e31 nodcat/gyaward "venv_linux/bin/pyth&hellip;" 17 seconds ago Up 16 seconds 0.0.0.0:9001-&gt;8002/tcp cocky_davinci

命令详解:

  1. docker run -d -p 9001:8002 -v /home/nodcat/python_workspace/logs/9001/:/var/python_workspace/GYAward/log nodcat/gyaward

-d 表示容器已守护态运行

-p 9001:8002 将容器内的8002端口映射到宿主机的9001端口

-v /home/nodcat/python_workspace/logs/9001/:/var/python_workspace/GYAward/log 将容器内的 /var/python_workspace/GYAward/log 目录映射到宿主机的 /home/nodcat/python_workspace/logs/9001/ 目录,方便调试

导出镜像到本地

如果要导出镜像到本地文件,可以使用 docker save 命令。

  1. $ sudo docker images
  2. REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
  3. ubuntu 14.04 c4ff7513909d 5 weeks ago 225.4 MB
  4. ...
  5. $sudo docker save -o ubuntu_14.04.tar ubuntu:14.04
载入镜像到镜像库

可以使用 docker load 从导出的本地文件中再导入到本地镜像库

  1. $ sudo docker load --input ubuntu_14.04.tar

  1. $ sudo docker load &lt; ubuntu_14.04.tar

这将导入镜像以及其相关的元数据信息(包括标签等)。

标签: Docker

上一篇: docker 报错Exited (1)

下一篇: docker报错Exited (137)

by 2023-08-07 23:49:05
篇笔记

学习笔记