如果是安裝在雲服務器上,請先檢測雲服務器的安全組配置是否配置(入站規則和出站規則)
Docker 使用前準備:註冊 Docker 賬號
點擊這裏跳轉官網註冊(https://hub.docker.com)
centOS7 安裝 Docker 前系統依賴性檢車
Docker 安裝在紅帽系統中時,要求得是64位系統及內核版本 3.10 以上。通過運行以下命令可以查看系統內核版本。
uname -r
查看 Docker 版本
docker version
使用 curl 方式安裝 Docker
centOS 系統下安裝 Docker 有兩種方式,一種是使用 curl 方式獲得 Docker 的安裝腳本進行安裝,一種是使用 yum 包管理器進行安裝。以下介紹 curl 安裝方式。
- 更新 yum 包
sudo yum update
- 執行 docker 安裝腳本
curl -sSL https://get.docker.com/ | sh
- 啓動 docker 服務
sudo service docker start
- 確認 docker 安裝成功
sudo docker run hello-world
創建 docker 用戶組
docker 默認是以 root 賬號的身份運行的,所以每次我們需要運行 docker 命令時前面需要加 sudo
命令。
當系統有其他用戶賬號時爲了避免這樣,我們可以將該用戶添加至 docker 用戶組。
- 使用root賬號登錄系統
- 創建 docker 用戶分組,並將相應的系統用戶添加至分組
sudo usermod -aG docker 用戶名
- 退出,重新登錄
- 確認可以運行 docker 命令
docker run hello-world
設置 docker 服務自啓動
sudo chkconfig docker on
docker 相關命令
- 登錄docker賬戶
docker login
- 登出docker賬戶
docker logout
- 拉取鏡像
docker pull [鏡像名]
- 查找鏡像
docker search [關鍵字]
- 刪除鏡像
docker rmi [鏡像名]
- 提交容器在本地生成新鏡像
docker commit -m "提交描述" -a "作者名" 容器ID [docker hub用戶名]/指定上傳的鏡像名
- 推送鏡像到自己的倉庫
docker push [鏡像名]
- 創建啓動容器
docker run [系統鏡像名]
- 啓動一個已停止的容器
docker start [容器ID] //或者 docker restart [容器ID]
- 查看 docker 中正在運行的容器
docker ps
- 停止容器
docker stop [容器ID]
- 進入容器
docker exec [容器ID]
- 刪除容器
docker rm -f [容器ID]
- 修改已有容器的端口映射
\\首先查找容器ID docker ps -a \\停止容器 docker stop 容器ID \\停止 docker 服務 systemctl stop docker \\根據ID去宿主機的 /var/lib/docker/containers/ 文件夾下查找對應的 ID 文件夾,並修改該文件夾下的 hostconfig.json 文件 vi /var/lib/docker/containers/[id]/hostconfig.json
修改完成後重啓 docker 服務和容器// 修改 hostconfig.json 文件的如下位置 "PortBindings":{"容器端口號/tcp":[{"HostIp":"","HostPort":"宿主機端口號"}]}
操作實例:docker 安裝配置 Nginx web服務
\\拉取鏡像
docker pull nginx:latest
\\啓動容器,命名爲 nginx-test,並將本地 5555 端口映射到容器內部的 80 端口,設置容器後臺運行
docker run --name nginx-test -p 5555:80 -d nginx
設置雲服務器的安全組,放通 5555 端口後,通過瀏覽器 IP:5555 訪問到 Nginx 的默認頁面證明安裝成功。
此時宿主機採用 5555 端口來映射容器的 80 端口通過域名的方式是不可訪問,若想通過域名不加端口來直接訪問,需修改宿主機的映射端口 5555 也爲 80 或在宿主機上直接安裝一個 Nginx,把宿主機的 80 端口映射到宿主機的 5555 端口。
如果需要修改 Nginx 容器的配置文件,需做一下準備:
//進入我們的 nginx 容器,並打開交互式 shell 的終端
docker exec -it nginx-test /bin/bash
//
成功打開後我們的命令行前綴會變爲容器的id,而不是我們的雲服務器了。
此時修改 Nginx 配置文件就和在雲服務上直接配置的操作一樣,Nginx.conf 文件在路徑 /etc/nginx 下。
不過在容器內部沒有 vim 指令,需要另行安裝(注意雲服務器的安全組的出站規則是否開通80端口用於上網)。
apt-get update
apt-get install vim
Nginx 配置文件掛載方式
如果不想每次都進入容器去修改配置文件,可以在宿主機內創建配置文件然後容器安裝時設置掛載,這樣 Nginx 就會使用宿主機的配置文件而不是內部的配置文件。
如想要將 Nginx 的項目文件路徑改爲宿主機下的文件路徑,這樣項目就不必放入容器內,只要上傳到宿主機的指定文件夾內就可以了
docker run --name nginx-test -p 5555:80 -v [宿主機的文件路徑]:/usr/share/nginx/html -d nginx
其中 -v 指定就是將 Nginx 容器的默認項目路徑掛載在我們的宿主機路徑上。
查看容器掛載目錄的命令:
docker inspect [容器名] | grep Mounts -A 20