准备工具:

  系统: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  # 解压镜像压缩包

最新文章

  1. split 分割 字符串(分隔符如:* ^ : | , .) 及注意点
  2. JQuery动画效果
  3. Android的Style的使用
  4. 【第40套模拟题】【noip2011_mayan】解题报告【map】【数论】【dfs】
  5. 1029c语言文法定义与c程序的推导过程
  6. jQuery编程基础精华01(jQuery简介,顶级对象$,jQuery对象、Dom对象,链式编程,选择器)
  7. 滚动效果,marquee便签
  8. jQuery模拟原生态App上拉刷新下拉加载
  9. 二.redis 数据类型
  10. (一)Redis在windows下的安装和使用
  11. spring cloud 集成 swagger2 构建Restful APIS 说明文档
  12. svg从入门到装逼(一)
  13. Fedora Linux安装deb包
  14. git push 到github时,报错:ERROR: Permission to xxx.git denied to user
  15. require('./expample.js).default详解
  16. 线程的条件Condiition
  17. MySQL5.6复制技术(3)-MySQL主从复制线程状态转变
  18. 【Python】如何基于Python写一个TCP反向连接后门
  19. phpunit Cannot redeclare class PHPUnit_Runner_Version
  20. php ini_set更改php.ini配置,通过它修改php.in达到php上传文件大小限制是不行的,除非修改.htaccess文件

热门文章

  1. 学习go语言编程系列之定义变量
  2. 使用phpexcel上传下载excel文件
  3. Python3快速入门
  4. oracle 窗口函数 (keep)
  5. git常用命令(转载自用)
  6. 嵌入式4412开发板学习知识-Linux系统基础知识
  7. Python 获取文件中最长行的长度和最长行
  8. SFTP免密码登录原理
  9. excel数据有隐藏字符导致正则校验不通过
  10. day 2 - 逻辑运算