前言
以下命令并不是docker的所有,僅涉及日常使用時最最常用的命令。
目的之一時給入門的朋友熟悉學習,其二時我自己偶爾使用時備忘。
一、概念
簡單介紹下docker的相關概念:
- 鏡像:Docker 鏡像是一個輕量級、可執行的獨立軟件包,可以看作是一個構建容器的基礎層。
- 容器:Docker 容器是鏡像的運行實例,容器之間是隔離的。
- 倉庫:Docker 倉庫是用于存儲和分發 Docker 鏡像的地方
如果你是初次學習以上概念,那么可以先簡單地理解為:
鏡像是一間間的套房,容器是人們住進這些套房后變成的一個個“家”,倉庫是賣房的。
二、管理本地鏡像
3.1 找docker鏡像
從鏡像倉庫中查找想要的鏡像,語法如下:
docker search <docker鏡像名>
如:
docker search mysql
3.2 從鏡像倉庫拉取鏡像到本地
docker pull <鏡像名>[:版本號]
如:
docker pull mysql
docker pull ubuntu:20.04
3.3 查看拉取到本地的鏡像
docker images
docker鏡像拉取到本地之后,就可以使用docker images
查到,之后需要再次使用該鏡像時,不再需要從倉庫中拉取。
3.3 刪除鏡像
docker rmi -f <鏡像名/鏡像ID>
如:
docker rmi -f mysql
四、管理容器
4.1 創建容器
docker run [可選參數] image
# 參數說明
--name="name" 容器名字:用來區分容器
-d 后臺方式運行
-it 使用交互式運行:進入容器查看內容
-p 指定容器的端口(四種方式)小寫字母p-p ip:主機端口:容器端口-p 主機端口:容器端口-p 容器端口容器端口
-P 隨機指定端口(大寫字母P)
-v 指定文件映射關系-v 本地路徑:容器內部路徑
-e 該鏡像的特殊參數,如用于指定初始密碼等
如運行mysql容器,一般會使用如下命令:
docker run -p 3306:3306 --name mysql -v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf \-v /data/mysql/logs:/logs \-v /data/mysql/data:/var/lib/mysql \--restart always \ # 該參數可選,用于讓該容器在docker啟動時自動啟動--privileged=true \ # 賦予容器幾乎與主機相同的權限,mysql鏡像一般需要多加這個參數-e MYSQL_ROOT_PASSWORD=123456 -d mysql
4.2 查看運行的容器
docker ps
4.3 容器刪除
docker rm -f <容器id>
4.4 容器啟停
docker start <容器id> # 啟動容器
docker restart <容器id> # 重啟容器
docker stop <容器id> # 停止當前正在運行的容器
docker kill <容器id> # 強制停止當前容器
4.5 進入和退出容器
docker exec -it <容器id> /bin/bash # 進入
exit # 退出
4.6 拷貝容器內文件
docker cp 容器id:容器內路徑 宿主機路徑 #從容器內拷貝文件到主機
docker cp 宿主機路徑 容器id:容器內路徑 # 將宿主機文件拷貝入容器
參考:
Docker 常用命令大全!!