Docker_學習筆記系列之容器

Docker組成之容器
1、啓動容器
啓動容器執行單次命令而後立刻容器就自動關閉docker

docker run 鏡像名或鏡像id  啓動的shell命令【啓動執行命令後就關閉了容器】

交互式啓動容器shell

docker run -i -t image_name /bin/bash

2、查看容器
查看系統中的容器bash

docker ps [-a][-l]
不給參數,只列出運行中的全部容器
-a 顯示全部容器包含已經關閉的容器
-l 列出最新建立的容器
eg:docker ps |grep 鏡像名/id  【查看鏡像建立的容器】

查看容器的詳細信息ide

docker inspect 容器id或容器名

自定義容器名測試

docker run --name=container01 -it  image_name /bin/bash

從新啓動已經中止過的容器debug

docker start [-i] 容器名/容器id   【加上-i 也是交互模式】

關閉容器日誌

docker stop 容器名/容器id

刪除容器【僅僅刪除已經中止的容器】code

docker rm  容器名/容器id

守護式啓動容器方式一【後臺運行】orm

docker run -it image_name /bin/bash
**先 ctrl+p 後 ctrl+q **【後臺運行】

守護式啓動容器方式二 【-d 時當命令執行完了仍是會退出容器】進程

docker run -d  -it image_name/id  /bin/bash -c "while true;do echo hello word;sleep 1; done "

進入運行中的容器【不建議使用】

docker attach  容器id或容器名

在運行中的容器中啓動新進程【如管理任務或查看debug日誌】

docker exec -it [-d] 容器名 命令 參數

查看容器日誌

docker logs 容器名/容器id
-f 一直跟蹤日誌,--follows=true|false 默認false
-t 顯示時間,--timestamps=true|false 默認false
--tail 10 最新的10條,0爲最新的日誌
eg: docker logs -tf --tail 10 con01

查看容器內的進程

docker top 容器名/容器id

中止運行中的容器

docker stop 容器名  【發送信號等待容器中止,返回容器名】
docker kill 容器名  【直接中止容器】

容器的端口映射,物理機端口與容器的端口

> docker run -P 端口  -it  image_name /bin/bash  【暴露容器全部的端口】
> docker run -p 端口 -it image_name /bin/bash 【指定的容器端口映射】
    ```powershell
    # 四種方式:
    1. 只指定容器的端口,宿主機端口隨機映射
          docker run -p 80 -it image_name /bin/bash
    2. 同時指定容器端口對應的宿主機端口【宿主:容器】
          docker run -p 8080:80 -it image_name /bin/bash
    3. 宿主機ip對應容器端口
          docker run -p 0.0.0.0:80 -it image_name /bin/bash
    4. 宿主機ip:宿主機端口:容器端口
          docker run -p 0.0.0.0:8080:80 -it image_name /bin/bash
查看容器的端口映射

docker port 容器名/容器id

刪除全部已經中止的容器

docker rm $(docker ps -qf status=exited)

搜索多個容器id,經過grep 多個條件

docker ps |grep -E '容器id1|容器id2'

顯示全部容器的IP

docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

 
 

根據容器名查容器id並刪除

> ##第一種寫法
> docker stop `docker ps -a| grep test-project | awk '{print $1}' `
> docker rm   `docker ps -a| grep test-project | awk '{print $1}' `
>
> ##第二種寫法
> docker stop  `docker ps -aq --filter name=test-project`
> docker rm    `docker ps -aq --filter name=test-project`

根據鏡像名查容器id並刪除【測試發現僅支持鏡像在本地】

> ##第一種寫法
> docker stop `docker ps -a| grep ygsama/test-project:1.0.2 | awk '{print $1}' `
> docker rm   `docker ps -a| grep ygsama/test-project:1.0.2 | awk '{print $1}' `
>
> ##第二種寫法
> docker stop  `docker ps -aq --filter ancestor=ygsama/test-project:1.0.2`
> docker rm   `docker ps -aq --filter ancestor=ygsama/test-project:1.0.2`

根據鏡像名查鏡像id並刪除

> docker images -q --filter reference=ygsama/test-project*:*
> docker image rm `docker images -q --filter reference=10.2.21.95:10001/treasury-brain*:*`
相關文章
相關標籤/搜索