docker的安装及使用

时间:2021-09-13 16:18:50

准备工具:

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