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