現在軟體開發都用容器化技術了,而 Docker 就是最火的容器化平台。這篇文章就是要教你怎麼用 Docker,包括安裝、啟動、查看、進入、拉取、刪除、啟動容器,還有各種參數和命令。就像在工作中,你得知道怎麼用各種工具,比如錘子、電鑽、螺絲刀,才能把東西做好。現在 Docker 就是你工具箱裡必不可少的一件利器,用它來搭建開發環境和部署應用程序,簡直是 so easy!
Docker 的安裝#
Docker 的安裝非常簡單,只需要到官網下載對應的安裝包,然後按照提示進行安裝即可。在安裝完成後,可以通過以下命令來驗證 Docker 是否安裝成功:
docker version
如果能夠輸出 Docker 的版本信息,則說明 Docker 已經成功安裝。
Docker 的啟動#
在安裝完成後,可以通過以下命令來啟動 Docker:
systemctl start docker
如果想要 Docker 在系統啟動時自動啟動,可以使用以下命令:
systemctl enable docker
查看鏡像信息#
在使用 Docker 之前,首先需要了解 Docker 鏡像的概念。Docker 鏡像是一個輕量級、可執行的獨立軟體包,包含了運行應用程序所需的所有內容,包括代碼、運行時環境、庫、環境變量和配置文件等。
要查看本地的 Docker 鏡像列表,可以使用以下命令:
docker images
該命令會列出本地所有的鏡像,包括鏡像 ID、鏡像名稱、鏡像標籤和鏡像大小等信息。
進入鏡像#
有時候需要進入到某個鏡像中進行操作,可以使用以下命令:
docker exec -it 鏡像名稱 /bin/bash
其中,-it 參數表示以交互式的方式進入容器中,並打開一個終端。/bin/bash 表示進入容器後默認執行的命令是 Bash 終端。
拉取鏡像#
如果本地沒有所需的 Docker 鏡像,可以通過以下命令拉取:
docker pull 鏡像名稱
該命令會從 Docker Hub 上下載指定的鏡像,並保存到本地。
刪除容器#
當不需要某個容器時,可以使用以下命令將其刪除:
docker rm 容器ID或容器名稱
啟動容器#
要啟動一個容器,可以使用以下命令:
docker run -d -p 主機端口:容器端口 鏡像名稱
其中,-d 參數表示以後台方式運行容器。-p 參數表示將主機端口映射到容器端口。例如,將主機的 8080 端口映射到容器的 80 端口:
docker run -d -p 8080:80 nginx
以哪個鏡像啟動一個新鏡像#
有時候需要在已有的鏡像上進行修改,並生成一個新的鏡像。可以使用以下步驟:
-
啟動一個容器並進入:
docker exec -it 鏡像名稱 /bin/bash
-
在容器中進行修改,並保存更改。
-
退出容器,並提交更改:
docker commit 容器ID 新鏡像名稱
-
查看新生成的鏡像:
docker images
啟動時各種參數#
在啟動容器時,可以指定各種參數來滿足特定的需求。以下是一些常用的參數:
- -d:以後台方式運行容器。
- -p:將主機端口映射到容器端口。
- -v:將主機目錄掛載到容器目錄。
- --name:為容器指定一個名稱。
- --restart:指定容器停止後自動重啟的策略。
例如,在啟動一個 MySQL 容器時,可以使用以下命令:
docker run -d --name mysql -p 3306:3306 -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
該命令指定了容器名稱為 mysql,將主機的 3306 端口映射到容器的 3306 端口,並將主機目錄 /root/mysql/data 掛載到容器目錄 /var/lib/mysql 中。同時還指定了 MySQL 的 root 用戶密碼和字符集等參數。
其他相關命令#
除了上述介紹的命令外,Docker 還提供了許多其他相關命令,例如:
- docker ps:查看正在運行的容器。
- docker stop:停止正在運行的容器。
- docker logs:查看容器日誌。
- docker exec:在正在運行的容器中執行命令。
- docker build:根據 Dockerfile 構建新的鏡像。
以上只是部分常用命令,Docker 還提供了許多其他強大的功能和命令,可以根據實際需求進行學習和使用。
總結#
本篇文章介紹了 Docker 的基本使用方法,以及其他的相關命令。Docker 是一款非常強大和靈活的工具,可以幫助開發者更加高效地進行軟體開發和部署。
本篇總結大部分來自於Docker - 從入門到實踐 和自己工作中的記錄
PS#
自從用了 docker 後,想了解很多組件都直接使用 docker 安裝,比如 mysql、redis、nginx 等等,這樣就不用擔心版本問題,也不用擔心安裝過程中的各種問題,直接拉取鏡像,然後啟動就可以了,非常方便。