准备工具:

  系统: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. Install Ubuntu Server

    进入引导程序以后, 选择Install Ubuntu Server, 安装主菜单如下: 依次配置: 接着 https://www.youtube.com/watch?v=gqLaT01yei0

  2. Android的Device File Explorer刷新文件

    不知道为什么,右键点sync不起作用,必须点一下列表中的设备,才可以.

  3. Newtonsoft.Json序列化Enum类型

    [JsonConverter(typeof(StringEnumConverter))] public StringAlignment TextAlign { get => textAlign; ...

  4. ubuntu 中文变成小方框 口

    今天打开ubuntu所有原来是中文的地方都变成口口口口    ,下面是解决办法,其实很简单,更新一下字体库就可以了 1. 进入到字体的目录下 /usr/share/fonts/  ,输入下面的命令 c ...

  5. Linux静默安装matlab

    对linux系统不是很熟,所有装起来有点费劲.来来回回折腾了二三天,查了很多攻略,但按照步骤老是报错,大体上各人设备不同.系统不同.环境设置不同,总是会多多少少略有差异. 一 基本配置 linux系统 ...

  6. Charles手机抓包设置&无法打开火狐网页设置

    1. Charles抓取手机上的网络包,需要安装证书(Charles的和手机的) 操作方法: https://blog.csdn.net/lea__dongyang/article/details/7 ...

  7. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

    错误描述:当在ASP.NET应用程序中引用Microsoft Excel组件,并在程序中调用时,部署到服务器上经常会遇到以下的错误:检索 COM 类工厂中 CLSID 为{00024500-0000- ...

  8. .netcore 写日志(使用NLog,log4net)

    参考地址: NLog:http://www.cnblogs.com/linezero/p/Logging.html Log4Net:http://www.cnblogs.com/linezero/p/ ...

  9. Leetcode#709. To Lower Case(转换成小写字母)

    题目描述 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hello" ...

  10. mysql案例~非常规操作汇总

    一 简介:此文汇总mysql不常见的数据库的操作二 mysql表修改最大自增ID 目的: 修复canal相关问题 语法: alter table a AUTO_INCREMENT=num; 执行速度: ...