Docker:常用命令 与 挂载目录

Docker 服务常用命令

  1. 设置 Docker 服务自动启动
sudo systemctl enable docker.service
  1. 启动 Docker 服务
sudo systemctl start docker.service
  1. 关闭 Docker 服务
sudo systemctl stop docker.service
  1. 查看 Docker 服务状态
sudo systemctl status docker.service

Docker 镜像常用命令

  1. 搜索镜像:可使用 docker search 命令搜索存放在 Docker Hub 中的镜像,显示的信息包括:
属性 描述
NAME 镜像仓库名称
DESCRIPTION 镜像仓库描述
STARS 镜像仓库收藏数
OFFICAL 是否官方库
AUTOMATED 是否自动构建的镜像仓库
docker search java
  1. 下载镜像:通过 docker pull 命令从 Docker Registry 上下载镜像
docker pull java
docker pull reg.itmuch.com/java:7   //指定下载镜像的标签以及 Docker Registry
  1. 列出镜像,显示的信息包括:
属性 描述
REPOSITORY 镜像所属仓库名
TAG 镜像标签,默认是 latest,表示最新
IMAGE ID 镜像ID
CREATED 镜像创建时间
SIZE 镜像大小
docker images
  1. 删除本地镜像
docker rmi hello-world      #删除指定名称镜像
docker rmi -f $(docker images)      #删除所有镜像

Docker 容器常用命令

  1. 通过 docker run 新建并启动容器,还可以附加一些常用选项
    • -d:表示后台运行
    • -P:随机端口映射
    • -v:指定挂载目录
    • -it:创建一个交互式的容器
    • -p:指定端口映射,ip 表示主机 IP、hostPort 表示宿主主机端口、containerPort 表示容器端口,有以下四种格式:
      • ip:hostPort:containerPort
      • ip:containerPort
      • hostPort:containerPort
      • containerPort
    • -network:指定网络模式,该选项有以下可选参数
      • -network=bridge:默认选项,表示连接到默认的网桥
      • -network=host:容器使用的宿主机器的网络
      • -network=container:NAME_or_ID:告诉 Docker 让新建的容器使用已有的容器网络配置
      • -network=none:不配置容器网络,用户可自定义网络配置
  • 下面命令会让终端打印 Hello World 字样,跟在本地直接执行 /bin/echo 'Hello World' 一样
docker run java /bin/echo 'Hello World'
  • 启动一个 Nginx 容器(默认Nginx配置为80端口),指定宿主机端口(这里指定端口为91),当访问 http://Docker宿主机IP:91/ 时会映射到容器80端口中,即可看到 Nginx 主页
docker run -d -p 91:80 nginx

docker run 命令在创建容器时,会检查本地是否存在指定镜像,如果不存在则从 Docker Hub 下载并启动

  1. 列出容器
  • 使用 docker ps 命令即可列出运行中的容器,显示的信息包括:
属性 描述
CONTAINER_ID 容器ID
IMAGE 镜像名称
COMMAND 启动容器时运行的命令
CREATED 容器创建的时间
STATUS 容器运行的状态,UP 表示运行中,Exited 已停止
PORTS 容器对外端口号
NAMES 容器名称,默认由 Docker 自动生成,也可使用 docker run --name 选项指定
docker ps
docker ps -a #显示容器,包含停止的容器
  1. 停止容器
  • 使用 docker stop 命令停止容器,784fd3b294d7 为容器 ID,也可使用容器名称来停止容器
docker stop 784fd3b294d7
  • 强制停止容器
docker kill 784fd3b294d7
  1. 启动停止的容器
  • 通过 docker run 命令即可新建并启动一个容器,对于已停止的容器,可使用 docker start 命令来启动
docker start 784fd3b294d7
  1. 重启容器
  • 可使用 docker restart 命令来重启容器
docker restart
  1. 进入容器
  • 某些场景下,可能需要进入运行中的容器
    • 使用 docker attach 命令进入容器(已过时),当多个窗口同时 attach 到同一个容器时所有窗口都会同步显示,同理阻塞的时候其它窗口也无法操作
    docker attach 784fd3b294d7
    
    • 使用 exec 命令进入容器(推荐)
    docker exec -i -t 784fd3b294d7 /bin/bash
    
    • 使用 exit 退出容器
      • 若使用 attach 方式进入容器,执行 exit 容器也会被关闭
      • 若使用 exec 方式进入容器,执行 exit 容器不会被关闭
    exit
    
  • 获得 PID 后,就可以使用 nsenter 命令进入容器了
nsenter --target "$PID" --mount --uts --ipc --net --pid
  1. 删除容器
  • 使用 docker rm 命令删除指定容器,该命令只能删除停止运行的容器
docker rm 784fd3b294d7
  • 如果需要删除正在运行的容器,可使用 -f
docker rm -f $(docker ps -a -q)
  1. 数据拷贝
  • docker cp 命令用于容器与主机之间的数据拷贝
    • 将主机 /www/runoob 目录拷贝到容器 96f7f14e99ab 的 /www 目录下
    docker cp /www/runoob 96f7f14e99ab:/www/
    
    • 将容器 96f7f14e99ab 的 /www 目录拷贝到主机的 /tmp 目录中
    docker cp 96f7f14e99ab:/www /tmp/
    
  1. 获取容器/镜像的元数据
  • 通过 docker inspect 来获取元数据,包含挂载目录信息等
docker inspect linyuantongxue/docker-demo:0.0.1

Docker 挂载目录

  • 挂载目录后镜像内就可以共享宿主机里的文件
  • 通过 run -v 参数指定挂载目录(格式:宿主机目录:镜像内挂载目录),如果宿主机目录不存在则创建
  • Centos7 中本地挂载的目录在容器中没有执行权限,通过 --privileged=true 给容器加特权
  • 下面以 centos 镜像为例:
    1. 通过 Centos 镜像运行一个容器,并设置挂载目录
    docker run -it -v /home/linyuan/Downloads/data:/data centos
    
    1. 此时可看到宿主机上 /home/linyuan/Downloads 文件夹下多出了 /data 目录
    2. 因为通过 -it 参数,已进入容器内部,通过 ls -a 命令查看文件夹,可看见多出 /data 目录,通过 cd 命令进入文件夹下并新建文件 touch a.txt
    3. 可看见宿主机 /data 目录也会存在该文件
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容