准备工具:

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

docker的安装及使用的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. docker 启动安装等命令

    确认是否安装url whereis curl 启动docker服务: sudo service docker start sudo service docker stop 安装curl sudo ap ...

  3. DOCKER windows安装

    DOCKER windows安装 1.下载程序包 2. 设置环境变量 3. 启动DOCKERT 4. 分析start.sh 5. 利用SSH工具管理 6. 下载镜像 6.1 下载地址 6.2 用FTP ...

  4. 在docker里面安装部署应用

    最近一直在做docker的安装打包工作,学到不少东西,在博客里记一下. 环境centos6 ,docker 基础镜象centos6 1.创建本地基础镜象,安装基础命令包 (1)Dockerfile,D ...

  5. Docker Centos安装Redis以及问题处理

    之前一篇文章 Redis安装及主从配置 介绍了redis的安装配置,另一篇文件介绍了 Docker Centos安装Openssh .今天将两篇文件结合一下——在Docker Centos环境下搭建r ...

  6. Docker Centos安装Mysql5.6

    之前一篇随笔<Docker Centos安装Openssh> 写的是如何在基础的centos镜像中搭建ssh服务,在此基础上再搭建其他服务.本文继续介绍在centos_ssh基础上搭建my ...

  7. Docker的安装及简单使用

    1.  Docker的安装 (这里的“安装docker”其实就是安装Docker Engine) $ sudo apt-get intasll docker.io note: apt-get是ubun ...

  8. docker 的安装

    官方站点上有各种环境下的 安装指南,这里主要介绍下Ubuntu和CentOS系列的安装. Ubuntu 系列安装 Docker 通过系统自带包安装 Ubuntu 14.04 版本号系统中已经自带了 D ...

  9. docker 17 安装

    docker17 安装 新增一键安装命令: curl -sSL https://get.docker.com/ | sh 以下为手动安装过程 翻译自 Get Docker for Ubuntu Doc ...

  10. centos7安装docker并安装jdk和tomcat(常用命令)

    阿里专属的镜像加速 在宿主机器编辑文件:vi /etc/docker/daemon.json 阿里专属的镜像加速地址,类似于"https://91cntlkt.mirror.aliyuncs ...

随机推荐

  1. adduser Ubuntu添加sudo用户

    第一种方法: 添加sudo用户 当你安装Ubuntu的时候,它会自动添加第一个用户到sudo组,允许这个用户通过键入其自身帐户密码来获得超级用户(root)身份.然而,系统不会再自动添加其他的用户到s ...

  2. SQL Server进阶(五)子查询

    概述 子查询的概念: 当一个查询是另一个查询的条件时,称之为子查询.子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.GROUP BY.HAVING.ORDER BY. 外面的 ...

  3. VS2019预览版发布了

     VS2019正式版已发布:https://www.cnblogs.com/zhaogaojian/p/10648904.html 1.点击下载https://visualstudio.microso ...

  4. 大规模数据导入和导出(oracle)

    请期待... http://www.cnblogs.com/xwdreamer/archive/2012/06/08/2541678.html Oracle sqlldr的用法 (这个最完整) htt ...

  5. C++ 模态与非模态对话框

    视频教程:模态与非模态对话框1 模态对话框:子窗口关闭之前,不能对父窗口操作 非模态对话框:子窗口关闭之前,可以对父窗口操作 插入一个对话框: 资源视图--->右击---> 进行类的绑定: ...

  6. Kaldi的交叉熵正则化

    xent_regularize, Cross Entropy Regularize nnet3/nnet-discriminative-trainning.cc:109 void NnetDiscri ...

  7. Create Extraction Zone

    添加C++类,名称为FPSExtractionZone 添加盒体组件,进行公开处理,并设置为随处可见 UPROPERTY(VisibleAnywhere,Category="Componen ...

  8. 20165234 《Java程序设计》第四周学习总结

    第四周学习总结 教材学习内容总结 第5章 子类与继承 子类的继承性 子类和父类在同一包中的继承性:子类继承父类中不是 private 的成员变量和方法作为自己的成员变量和方法 子类和父类不在同一包中的 ...

  9. 【NLP CS224N笔记】Lecture 2 - Word Vector Representations: word2vec

    I. Word meaning Meaning的定义有很多种,其中有: the idea that is represented by a word,phrase,etc. the idea that ...

  10. python,类和对象(二),self 、__init__(self,param[,param...])、__private(私有变量)

    当我们在类中定义方法的时候,总会看到会第一个参数总是self,是的这个是python的一个语法,他相当于这个对象的指针. class Dog(): def setName(self,name): se ...