准备工具:

  系统: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. django生产环境启动问题

    unavailable modifier requested: 0 环境: nginx+uwsgi+django *** Starting uWSGI 2.0.16 (64bit) on [Wed J ...

  2. vue2.0 子组件 父组件之间的传值

    常用的子组件给父组件传值/调父组件方法 //子组件let val = "";//可以是任意类型this.$emit('fatherFun', val); //父组件<fath ...

  3. 割点判断+luogu 3469 POI2008 BLO

    1.根节点,有2棵及以上子树 2.非根节点,有子节点dfn[u]<=low[v] #include <bits/stdc++.h> #define N 1000050 using n ...

  4. Unet网络

    近期利用遥感影像进行路网提取,利用Unet网络进行图像分割 介绍如下: U-net网络非常简单,前半部分作用是特征提取,后半部分是上采样.在一些文献中也把这样的结构叫做编码器-解码器结构.由于此网络整 ...

  5. 用PHP来获取access_token

    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".A ...

  6. jira和svn关联后,不显示Subversion Commits标签或不显示svn提交信息

    1.jira的版本是7.3.6 2.不显示Subversion Commits标签或不显示svn提交信息 其实是权限的分配问题 3.管理员登录 找到对应项目的权限管理 4.[评论权限]——[编辑所有评 ...

  7. 剑指Offer-从上往下打印二叉树

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 思路 使用两个队列一个存放节点,一个存放值.先将根节点加入到队列中,然后遍历队列中的元素,遍历过程中,访问该元素的左右节点,再将左右子 ...

  8. MIME 类型

    关于读音 为了防止大家出去丢人,我先示范一下,MIME应该独坐[maim],听起来就好像“男人”的英语法人一样. 浏览器和MIME的关系 浏览器依靠MIME类型解释网页. 每当浏览器请求一个web页面 ...

  9. P1880 [NOI1995]石子合并(区间DP)

    题目链接:https://www.luogu.org/problemnew/show/P1880 题目大意:中文题目 具体思路:和上一篇的思路是差不多的,也是对于每一个小的区间进行处理,然后再归并到大 ...

  10. mysql 案例 ~ 表空间迁移数据与数据导入

    一  简介:mysql5.6+的表空间传输二 目的:复制数据到另一个表三 步骤   1 create table b like a ->创建一个空表   2 alter table b disc ...