工作中docker常用命令-方便回忆

背景

docker适配的时候命令总是记得很熟,当版本结束了docker命令忘的差不多,这次记录一下

docker 基本操作

获取镜像

docker pull ubuntu

列出镜像列表

docker images

删除镜像

docker rmi

运行ubuntu镜像

docker run ubuntu:15.10 /bin/echo "Hello world"

docker run -it ubuntu /bin/bash

  • docker: Docker 的二进制执行文件。
  • run: 与前面的 docker 组合来运行一个容器。
  • ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • /bin/echo "Hello world": 在启动的容器里执行的命令

提交容器副本

docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2

各个参数说明:

  • -m: 提交的描述信息
  • -a: 指定镜像作者
  • e218edb10161:容器 ID
  • runoob/ubuntu:v2: 指定要创建的目标镜像名

打包镜像

docker save -o mytest.tar mytest:v1

运行tar包

docker load --input mytest.tar

docker run -i -t -v -p

我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:

docker run -i -t ubuntu:15.10 /bin/bash

  • -t: 在新容器内指定一个伪终端或终端。
  • -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
  • -v:给容器挂载存储卷,挂载到容器的某个目录 顺序:主机:容器
  • -p:端口映射
  • --privileged=true 指定容器是否为特权容器。比如systemctl命令
  • --restart="no" 指定容器停止后的重启策略:
    no:容器退出时不重启
    on-failure:容器故障退出(返回值非零)时重启
    always:容器退出时总是重启

docker run -itd -v /home/hyzhou/docker(本地目录):/data(容器目录) ubuntu:14.04 /bin/bash

后台运行ubuntu

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

docker run -itd --name ubuntu-test ubuntu /bin/bash

docker logs

在宿主主机内使用 docker logs 命令,查看容器内的标准输出:

停止容器

docker stop 容器id

查看容器列表

docker ps -a

进入容器

docker exec -it nginx /bin/bash

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

  • docker attach
  • docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。

导出和导入容器

docker export 1e560fca3906 > ubuntu.tar

可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:


docker import - new_ubuntu < ubuntu.tar

容器端口映射

docker run -d -P training/webapp python app.py

  • -P:将容器内部使用的网络端口随机映射到我们使用的主机上。

我们也可以通过 -p 参数来设置不一样的端口:

docker run -d -p 5000:5000 training/webapp python app.py

docker拷贝

docker cp nginx:/www /tmp/#将nginx容器的/www 拷贝到本地/tmp下

创建容器时忘了添加参数 --restart=always 当 Docker 重启时容器未能自动启动

docker container update --restart=always 容器名字

在容器外执行命令

docker exec -it $DOCKER_ID /bin/bash -c 'cd /packages/detectron && python tools/train.py'

获取所有的容器id(仅显示id)

docker container ls -q

posted @ 2022-09-01 10:42  Tarzen  阅读(45)  评论(0编辑  收藏  举报