docker命令

docker命令

登录容器

docker登录方式

  1. 使用ssh登陆进容器
  2. 使用nsenter、nsinit等第三方工具
  3. 使用docker本身提供的工具

ssh登录增大开销,也更加危险,违反一个容器一个进程的原则;
第三种方式有两种

  1. attach
  2. exec

Docker attach
可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。
但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。
docker exec

#只有输出
docker exec -i bb2 /bin/sh
#终端交互
docker exec -it bb2 /bin/sh
#后台执行
docker exec -d bb2 /bin/sh

登录

#tag
docker tag IMAGE  shihai.zhang/zmc_base
#登录
docker login registry.corp.qunar.com
#pull和push
docker push registry.corp.qunar.com/luye/busybox
docker pull registry.corp.qunar.com/nginx:latest

容器端口映射

#容器映射主机端口
docker inspect `container_name` | grep IPAddress
iptables -t nat -A  DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000
#镜像启动设置端口
docker run -d -p 8000:80  foo/live /bin/bash

指令

docker run -p ip:hostPort:containerPort redis

使用-p参数会分配宿主机的端口映射到虚拟机。
IP表示主机的IP地址。
hostPort表示宿主机的端口。
containerPort表示虚拟机的端口。
格式

ip:hostPort:containerPort:映射指定地址的指定端口到虚拟机的指定端口(不常用)
如:127.0.0.1:3306:3306,映射本机的3306端口到虚拟机的3306端口。

ip::containerPort:映射指定地址的任意端口到虚拟机的指定端口。(不常用)
如:127.0.0.1::3306,映射本机的3306端口到虚拟机的3306端口。

hostPort:containerPort:映射本机的指定端口到虚拟机的指定端口。(常用)
如:3306:3306,映射本机的3306端口到虚拟机的3306端口。

通过docker ps查看是否成功
host模式运行

docker run -it --net=host  --name=hue1  registry.corp.qunar.com/shihaizhang/hue-new:2 bash /home/q/bin/init.sh

命令总结

容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause]
容器操作运维 — docker [ps|inspect|top|attach|events|logs|wait|export|port]
容器rootfs命令 — docker [commit|cp|diff]
镜像仓库 — docker [login|pull|push|search]
本地镜像管理 — docker [images|rmi|tag|build|history|save|import]
其他命令 — docker [info|version]

posted @ 2017-02-17 19:06  zhangshihai1232  阅读(100)  评论(0)    收藏  举报