## 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"] 倒數多少條
~~~