准备工具:
系统:ubuntu18.04
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.deb
应用软件包:mysql-v3.tar.gz,activemq-v3.tar.gz,wanlida-v3.tar.gz,db.tar.gz,docker-compose.yml
数据库数据包:db.tar.gz
一.安装Docker CE
离线安装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.io
$ sudo apkg -i containerd.io_1.2.4-1_amd64.deb
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 # 解压镜像压缩包