聊聊Docker的各種有用命令
昨天我們知道了如何在服務器上部署自己的微服務的項目,但是對于很多命令,有小伙伴們就開始疑惑了,命令那么多,我到底應該怎么知道哪些是自己可能會用到的,而且也想了解一下這個命令都是用來做什么的,今天了不起就來給大家伙說說這個Docker 中的各項的命令。畢竟開發(fā)都離不開實戰(zhàn)。
Docker 命令
docker build [image_name] :基于Dockerfile構建一個鏡像。
這個我們都熟悉了,昨天了不起已經(jīng)給大家說了,把我們的jar包構建成一個鏡像,
docker run --name [container_name] [image_name] :運行一個容器并指定名稱。
直接運行我們打的鏡像,而且也可以指定端口號啟動,比如如下的啟動命令
docker run -p 18081:18081 xxx(test)
但是這種啟動方式,則會直接打印啟動日志,但是不會以后臺的方式啟動
-i 以交互模式運行容器,通常與 -t 同時使用
-t 啟動容器后,為容器分配一個命令行,通常與 -i 同時使用
-v 目錄映射,容器目錄掛載到宿主機目錄,格式: :<容器目錄>
-d 守護進程,后臺運行該容器
-p 指定端口映射,格式:主機(宿主)端口:容器端口
-P 隨機端口映射,容器內部端口隨機映射到主機的端口(49153起始 49153到65535)
-u 以什么用戶身份創(chuàng)建容器
–name “nginx-lb” 容器名字
-m, --memory bytes 設置容器使用內存最大值
-h, --hostname string 指定容器的 host name
–dns 8.8.8.8 指定容器 dns 服務器
-e username=“ritchie” 設置環(huán)境變量
–restart Docker 重啟后,容器是否自動重啟
–privileged 容器內是否使用真正的 root 權限
docker images :列出本地所有的鏡像。
這個命令很簡單,就是列出,我們使用docker安裝的各種鏡像,比如昨天了不起打包成的一個小的微服務 test 的鏡像還有mysql的鏡像。
圖片
docker ps :列出所有正在運行的容器。
圖片
我們這時候就可以看到目前現(xiàn)在正在運行的鏡像容器,一個是我們的 test 另外一個則是裝好的 mysql而且還有他們的端口號
docker logs [container_id] :查看一個容器的日志。
圖片
docker inspect [container_id] :顯示一個容器的詳細信息。
圖片
這個時候,我們可以看到這個服務在容器內的IP,如果想要連接mysql的服務器的話,那么你就可能需要這個命令,因為這個mysql你是用 docker 部署并且啟動的,不是么?
docker stop [container_id] :停止一個正在運行的容器。
圖片
不錯,我們先通過ps看到了我們的test 容器,這時候,我們需要去停止這個容器,這時候就是執(zhí)行了stop的命令,直接停止了,然后再次查看的時候,已經(jīng)只有 mysql 的存在了。
docker rmi [image_id] :刪除一個鏡像。
docker rm [container_id] :刪除一個容器。
這兩個命令也是我們在部署的時候會經(jīng)常用到的,因為我們在在做了新的需求之后,就肯定需要部署新的服務包,這個時候,就需要重新打包鏡像了,刪除容器和刪除鏡像都需要使用到了。
docker network ls :列出所有網(wǎng)絡。
圖片
其實上述內容,都是我們在部署微服務的時候最有用的,其他的都是屬于了解的了,了不起也來給大家列出這個內容大家有興趣的可以了解一下了。
擴展內容
docker run [image_name] :運行一個容器。
docker ps :列出所有正在運行的容器。
docker images :列出本地所有的鏡像。
docker pull [image_name] :從倉庫下載一個鏡像。
docker push [image_name] :將一個鏡像推送到倉庫。
docker build [image_name] :基于Dockerfile構建一個鏡像。
docker stop [container_id] :停止一個正在運行的容器。
docker restart [container_id] :重啟一個容器。
docker rm [container_id] :刪除一個容器。
docker rmi [image_id] :刪除一個鏡像。
docker logs [container_id] :查看一個容器的日志。
docker inspect [container_id] :顯示一個容器的詳細信息。
docker exec [container_id] [command] :在運行的容器中執(zhí)行命令。
docker cp [container_id:/path/to/file] [local_file_path] :從容器中復制文件到本地。
docker network ls :列出所有網(wǎng)絡。
docker network create [network_name] :創(chuàng)建一個新的網(wǎng)絡。
docker network connect [container_id] [network_name] :將容器連接到一個網(wǎng)絡。
docker network disconnect [container_id] [network_name] :將容器從一個網(wǎng)絡中斷開連接。
docker port [container_id] :查看容器的端口映射。
docker run --name [container_name] [image_name] :運行一個容器并指定名稱。
docker run -p [host_port]:[container_port] [image_name] :將主機端口映射到容器端口運行一個容器。
docker run -it [image_name] :以交互模式運行一個容器。
docker run -d [image_name] :以后臺模式運行一個容器。
docker stats [container_id] :查看一個容器的資源使用情況。
docker top [container_id] :查看一個容器中運行的進程。
docker commit [container_id] [new_image_name] :創(chuàng)建一個新的鏡像并提交更改。
docker save [image_name] > [file.tar] :將鏡像保存為tar文件。
docker load < [file.tar] :從tar文件中加載鏡像。
docker tag [image_name] [new_image_name] :創(chuàng)建一個新的鏡像標簽。
docker login :登錄到Docker Hub。
docker logout :退出Docker Hub。
docker volume ls :列出所有存儲卷。
docker volume create [volume_name] :創(chuàng)建一個存儲卷。
docker volume rm [volume_name] :刪除一個存儲卷。
docker run --mount source=[volume_name],target=[container_path] [image_name] :掛載一個存儲卷到容器。
docker system prune :刪除未使用的數(shù)據(jù)(如未使用的鏡像、容器等)。
docker swarm init :初始化Swarm mode。
docker service ls :列出所有服務。
docker service create [service_name] :創(chuàng)建一個新的服務。
docker service rm [service_name] :刪除一個服務。