docker經常使用命令
1.鏡像管理
docker pull (鏡像名) # 默認拉取最新版本的鏡像 docker pull (鏡像名:版本號) #拉取指定版本的鏡像 docker push (鏡像名) # 推送鏡像 docker images # 查看當前機器的全部鏡像 docker rmi 鏡像名 #刪除一個鏡像 docker tag 源鏡像名:版本號 自定義鏡像名:版本號 # 爲一個鏡像打tag docker save busybox > busybox.tar # 製做鏡像 docker load < busybox.tar # 導入鏡像
給鏡像重命名tag只是在原來的鏡像上創建了一個軟鏈接,刪除鏡像也只是刪除tag,直到只剩原鏡像 <img src="https://img2018.cnblogs.com/blog/1418970/201811/1418970-20181102171940028-2120861955.png" width="700" />docker
2.容器管理
free -h #查看宿主機存儲空間 # 運行容器 # 容器運行時的參數 #--name 指定容器名稱 -d 後臺運行 -p 指定端口映射規則 #--networkd 指定容器運行的網絡模式 -v 指定須要掛載的數據卷 #-e 指定須要傳遞給容器的環境變量 進入交互,env|grep 環境變量 查看環境變量是否傳入成功 docker run jenkins #直接運行 docker run -d jenkins #後臺運行 docker run -d --name (容器名) (鏡像名) #指定容器name運行 docker stop (容器名) #中止容器 docker kill (容器名) #殺死容器 docker rm (容器名) docker rm -f (容器名) #強行刪除容器 docker ps #列出運行的容器 docker ps -a #列出全部的容器 docker ps -a -s #列出全部容器及佔用硬盤空間
<img src="https://img2018.cnblogs.com/blog/1418970/201811/1418970-20181102191832493-1530842209.png" width="600" /> <img src="https://img2018.cnblogs.com/blog/1418970/201811/1418970-20181102192255970-1579189588.png" width="600" /> CONTAINER ID:容器的id,惟一 IMAGE:使用的鏡像 COMMAND:啓動容器的腳本 CREATED:建立的時間 STATUS:當前容器的狀態 PORTS:當前容器對外暴露的端口號 NAMES:指定的name ## 3.查看信息命令 ```#shell #查看日誌 docker logs (容器id) docker logs (容器名) #日誌實時滾動 docker logs -f ${CONTAINER ID} docker logs -f (容器名稱) docker info #查看docker服務的信息 docker inspect (容器名稱) #查看容器的元數據 docker stats 容器名 #查看容器當前佔用的資源,如CPU,內存 ``` ## 4.容器交互命令 ```#shell docker exec -it 容器名 bash docker exec 容器名 echo "hello world" docker exec 容器名 ping www.baidu.com docker cp path/file 容器名:/path ``` ## 5.端口映射 宿主機端口號:容器端口號 ```#shell docker run -d --name csjjenkins jenkins #啓動的容器網絡並未對外暴露,在用網絡名稱空間隔離着,不能訪問。 ``` 端口映射:把容器網絡的端口映射到宿主機上,將訪問宿主機某個端口的網絡流浪包轉發給容器,間接達到通訊的目的。 ```#shell docker run -d --name csjjenkins -p 8080:8080 jenkins ``` 第一次啓動Jenkins,須要填入初始化密碼 <img src="https://img2018.cnblogs.com/blog/1418970/201811/1418970-20181102195823289-1524182657.png" width="400" /> <img src="https://img2018.cnblogs.com/blog/1418970/201811/1418970-20181102195858622-1077077103.png" width="500" />shell
6.文件掛載
持久化或數據保存能力:防止容器掛掉或被人誤刪致使數據丟失,須要經容器中的數據保存到本地。bash
docker run -d --name csjjenkins -p 8080:8080 -v /Users/chenshanju/Desktop/docker/images/csjjenkins_home:/var/jenkins_home jenkins
FAQ
1.刪除容器
先中止容器 docker stop ${CONTAINER ID} docker stop ${NAMES} 刪除容器 docker rm -f ${CONTAINER ID} docker rm -f ${NAMES}網絡
2.掛載時遇到的權限問題
須要修改下目錄權限,由於當映射本地數據卷時,/Users/chenshanju/Desktop/docker/images/csjjenkins_home目錄的擁有者是chenshanju,而容器中Jenkins用戶的uid爲1000 用戶身份不一致會致使權限問題 1.chmod 777 /csjjenkins_home 2.sudo chown -R 1000:1000 /User/chenshanju/Desktop/docker/images/csjjenkinsui