## docker run 创建并运行容器
~~~
docker run [参数] IMAGE [CMD] [ARG]
~~~
### 参数
~~~
--name
指定容器的名称
-t|--tty=true
分配伪tty终端,默认为false
-i|--interactive=ture
容器以交互式模式运行
-d|--detach=true|false
让命令在后台运行,命令运行结束,docker也结束
--rm
命令结束后docker退出自动销毁
-h,--hostname
容器的主机名
--ip=""
设定容器IP
-P, --publish-all=true|false
为所有的端口映射
-p, --publish=[]
映射指定端口
ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort | containerPort
-w, --workdir=""
指定容器的工作目录
~~~
## docker start 启动终止的容器
### 选项
~~~
-a, --attach
启动后附加
--help Print usage
-i, --interactive
附加到容器的标准输入
~~~
## docker restart 重新启动运行的容器
### 选项
~~~
-t, --time=10
发出终止信号前等待的时间
~~~
## docker stop 停止运行的容器
### 选项
~~~
-t, --time=10
发出终止信号前等待的时间
~~~
## docker attach 进入启动的容器
当多个窗口同时 attach 到同一个容器的时候,所有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。
## nsenter 命令
nsenter 工具在 util-linux 包2.23版本后包含。
~~~
yum install -y util-linux
~~~
### 使用方法
~~~
PID=$(docker inspect --format "{{ .State.Pid }}" <container>)
nsenter --target $PID --mount --uts --ipc --net --pid
~~~
### 建议使用 bashrc_docker
~~~
wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker
echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc
~~~
#### 使用方法
~~~
alias docker-pid="sudo docker inspect --format '{{.State.Pid}}'"
alias docker-ip="sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}'"
~~~
#### docker-enter
~~~
docker-enter <container> [cmd]
~~~
如果后边跟上命令,指令命令后会退出,相当于
~~~
nsenter --target 63424 --mount --uts --ipc --net --pid env -i ls
~~~
# docker容器
## docker ps 查看容器状态
### 参数
~~~
-a, --all
显示所有容器
-f, --filter value
--format string Pretty-print containers using a Go template
-n, --last int Show n last created containers (includes all states) (default -1)
-l, --latest
显示最新创建的容器
--no-trunc
不截断显示
-q, --quiet
-s, --size
~~~
## docker rm 删除停止的容器
### 选项
~~~
-f, --force
强制删除正在运行的容器
-l, --link
移除特殊的连接
-v, --volumes
移除volumes
~~~
### 示例
~~~
# 删除所有停止的容器
docker rm $(docker ps -a -q)
~~~
# docker镜像
## docker images 查看镜像
## docker rmi 删除镜像
~~~
-f ,--force 强制
~~~
## docker logs CONTAINER
~~~
-f|--follow 是否一直输出
--since[=SINCE] Show logs since timestamp
-t|--timestamps 时间戳
--tail[="all"] 倒数多少条
~~~