準備工具:mysql
系統:ubuntu18.04linux
docker軟件包:docker-compose.tar.gz,containerd.io_1.2.4-1_amd64.deb,docker-ce-cli_18.09.3_3-0_ubuntu-bionic_amd64.deb,docker-ce_18.09.3_3-0_ubuntu-bionic_amd64.debgit
應用軟件包:mysql-v3.tar.gz,activemq-v3.tar.gz,wanlida-v3.tar.gz,db.tar.gz,docker-compose.ymlgithub
數據庫數據包:db.tar.gzweb
一.安裝Docker CEsql
離線安裝docker:docker
1.將containerd.io_1.2.4-1_amd64.deb,docker-ce-cli_18.09.3_3-0_ubuntu-bionic_amd64.deb,docker-ce_18.09.3_3-0_ubuntu-bionic_amd64.deb三個導入本地服務器,或者從https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/下載數據庫
2.安裝container.iojson
$ sudo apkg -i containerd.io_1.2.4-1_amd64.debubuntu
3.安裝docker-ce-cli
$ sudo apkg -i docker-ce-cli_18.09.3_3-0_ubuntu-bionic_amd64.deb
4.安裝docker-ce
$ sudo apkg -i docker-ce_18.09.3_3-0_ubuntu-bionic_amd64.deb
5.檢查是否安裝成功
$ sudo docker -v #僅僅是查看docker-ce-cli客戶端軟件包是否安裝成功
$ sudo docker images #查看本地鏡像,若是報錯就是安裝不成功
$ sudo docker run hello-world #在聯網狀況下檢測是否安裝成功
在線安裝docker:
1.添加使用HTTPS傳輸的軟件包以及CA證書
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
2.爲了確認所下載軟件包的合法性,須要添加軟件源的 GPG 密鑰
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - (國內鏡像源)
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - (官方源)
3.向 source.list 中添加 Docker 軟件源
$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" (國內軟件源)
# $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" (官方源)
4.安裝docker
$ sudo apt-get update
$ sudo apt-get install docker-ce
5.啓動docker ce(默認安裝成功後自動啓動)
$ sudo systemctl enable docker
$ sudo systemctl start docker
6.創建docker用戶組(默認安裝成功後自動創建)
$ sudo groupadd docker
7.把當前用戶加入docoker組,以使當前用戶具備操做docker權限
$ sudo usermod -aG docker $USER
退出終端,從新登陸後更改生效
8.測試docker是否安裝成功
$ docker run hello-world (若是當前用戶沒有加入docker組,須要root權限執行此命令)
9.若是下載緩慢,能夠配置鏡像加速器
$ cd /etc/docker
$ vim daemon.json (默認沒有此配置文件,須要本身建立)
把官方提供的鏡像加速器添加到配置文件,也能夠本身改成其餘加速器,例如阿里雲的加速器
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
10.卸載docker:
1.卸載docker軟件包
$ sudo apt-get purge docker-ce
$ sudo apt-get remove --auto-remove docker
2.刪除在電腦裏的鏡像、容器和數據卷
$ sudo rm -rf /var/lib/docker
二.安裝Docker Compose # 若是不使用docker-compose方式部署,能夠不安裝
1.下載最新版本的Docker Compose
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
或者從本地導入已經下載好的軟件包docker-compose.tar.gz
# $ tar -xzf docker-compose.tar.gz /usr/local/bin/ # 離線安裝模式
2.添加可執行權限
$ sudo chmod +x /usr/local/bin/docker-compose
3.添加軟鏈接
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4.測試是否安裝成功
$ docker-compose --version
5.卸載docker-compose
使用curl方式或者離線安裝:
$ sudo rm /usr/local/bin/docker-compose
使用pip方式安裝:
$ sudo pip uninstall docoker-compose
三.遠程部署項目
1.打包本地鏡像
$ docker save 鏡像ID | gzip > filename.tar.gz
本文檔實例:分別打包壓縮 mysql:v3,activemq:v3,wanlida:v3三個鏡像爲mysql-v3.tar.gz,activemq-v3.tar.gz,wanlida-v3.tar.gz
2.傳到遠程服務器
$ scp localfile username@ip:path #必定要把docker-compose.yml文件傳到遠程服務器
或者使用u盤導入:
$ mkdir 項目目錄 # 例如本文檔實例:/home/mywork
$ cp mysql-v3.tar.gz,activemq-v3.tar.gz,wanlida-v3.tar.gz /home/mywork #將三個鏡像壓縮文件導入項目目錄
$ cp docker-compose.yml /home/mywork # 將部署項目使用的docker-compose.yml文件導入項目目錄
$ cp db.tar.gz /home/mywork # 將項目使用的數據庫數據包導入項目目錄,此數據包不是直接從數據庫導出的數據庫包
3.解壓鏡像
$ docker load -i filename.tar.gz
$ docker images # 查看本地鏡像
4. 鏡像命名
$ docker image tag 鏡像ID newname
本文檔實例:$ docker load -i mysql-v3.tar.gz # 解壓出的鏡像名字和版本號是none
$ docker image tag mysql鏡像ID mysql:v3 # 重命名mysql鏡像的名字爲mysql,版本好爲v3,此處命名要與docker-compose.yml部署文件裏的名字一致
5.部署服務
docker-compose.yml文件內容:
version: "3"
services:
db:
image: mysql:v3 # 若是本地沒有鏡像,會默認從docker Hub公共倉庫下載,離線部署時,必須與本地鏡像名和版本號一致
expose:
- "3306"
volumes:
- ./db:/var/lib/mysql
ports:
- "4000:3306"
depends_on:
- activemq
activemq:
image: activemq:v3
volumes:
- ./activeMQ:/var/lib/activeMQ
stdin_open: yes
tty: yes
privileged: yes
ports:
- "1885:1884"
web:
image: wanlida:v3
ports:
- "8080:8080"
links:
- db
- activemq
depends_on:
- db
使用docker-compose方式部署: # 此方式不能實現服務自動重啓
1.部署項目
$ docker-compose up #必定要在含有docker-compose.yml文件的目錄下執行
2.查看有哪些服務已經啓動
$ docker container ls
3.中止服務
$ docker-compose down
使用集羣部署方式:
1.初始化管理節點
$ docker swarm init
2.部署項目
$ docker stack deploy -c docker-compose.yml ProjectName
3.查看服務
$ docker service ls
4.中止並刪除項目
$ docker stack rm ProjectName
5.刪除節點
$ docker swarm leave --force
四.容器命令
$ docker container ls # 查看正在運行的容器
$ docker container ls -a #查看全部容器
$ docker container stop 容器ID # 中止容器
$ docker container start 容器ID # 啓動容器
$ docker container rm 容器ID #刪除容器
$ docker exec -it 容器ID /bin/bash #進入容器
$ exit 退出容器
五.鏡像命令
$ docker images # 查看全部鏡像
$ docker image ls # 查看全部鏡像
$ docker image tag 鏡像ID newname # 重命名鏡像
$ docker image rm 鏡像ID # 刪除鏡像
$ socker image prune # 刪除名字爲none的空閒鏡像
$ docker save 鏡像ID | gzip > filename.tar.gz # 打包壓縮鏡像
$ docker load -i filename.tar.gz # 解壓鏡像壓縮包