zoukankan      html  css  js  c++  java
  • docker-linux下的部署和基本命令

    Docker 安装

    官方网站上有各种环境下的安装指南,比如:CentOSUbuntu 和 Debian 系列的安装。

    而我们现在主要介绍的是基于 CentOS 7.x 上面的安装。

    1、查看是否已经安装过docker

    [root@shihaibin ~]# yum list installed | grep docker

    docker.x86_64                        2:1.12.6-55.gitc4618fb.el7.centos @extras  
    docker-client.x86_64                2:1.12.6-55.gitc4618fb.el7.centos @extras  
    docker-common.x86_64                2:1.12.6-55.gitc4618fb.el7.centos @extras 

    2、以上表示已经安装过,删除docker

    [root@shihaibin ~]# yum remove –y docker.x86_64

    [root@shihaibin ~]# yum remove –y docker-client.x86_64

    [root@shihaibin ~]# yum remove –y docker-common.x86_64

    3、安装docker(-y 表示静默安装,安装过程不再询问)

    [root@shihaibin ~]# yum install -y docker

    4、启动docker

    [root@shihaibin ~]# systemctl start docker.service

    5、停止docker

    [root@shihaibin ~]# systemctl stop docker

    6、查看当前docker状态
    [root@shihaibin ~]# systemctl status docker     

    Docker 镜像

    7、拉取镜像

    7.1、从 docker hub 拉取

    https://hub.docker.com/

    下面的例子将从Docker Hub 仓库下载一个 Tomcat 7 版本的服务器镜像。

    [root@shihaibin ~]# docker pull tomcat:7

    这是docker默认的公用仓库,不过缺点是国内下载会比较慢。

    7.2、从 163 拉取(建议使用)

    在宿主机器编辑文件:vi /etc/docker/daemon.json

    请在该配置文件中加入(没有该文件的话,请先建一个):

    {"registry-mirrors": ["http://hub-mirror.c.163.com"]}

    最后,需要重启 docker 服务

    [root@shihaibin ~]# systemctl restart docker

    之后再使用 pull 命令拉取镜像,这时候是从 ustc 获取镜像,而且速度杠杠的。

    8、列出镜像

    docker images

    [root@shihaibin ~]# docker images

    9、删除镜像

    docker rmi 镜像

    [root@shihaibin ~]# docker rmi tomcat:7

    注意:当镜像创建的容器存在时,无法删除镜像文件,需要先删除依赖该镜像的所有容器,再删除镜像。

    10、导入导出镜像

    导出镜像:docker save 镜像 > /root/xx.tar.gz

    导入镜像:docker load < /root/xx.tar.gz

    Docker 容器

    11、启动容器

    以交互方式启动容器:docker run -it --name 容器名称 镜像 /bin/bash

    [root@shihaibin ~]# docker run -it --name mytomcat tomcat:7 /bin/bash
    [root@28cc2a4f8c90 /]#

    退出容器

    [root@28cc2a4f8c90 /]# exit
    exit
    [root@shihaibin ~]#

    以守护进程方式启动容器:docker run -d --name  容器名称  镜像

    [root@shihaibin ~]# docker run -d --name mytomcat tomcat:7
    f9b59aed3c7de509d6c9d9cc14c3d7774fc50f250b70661a4354df948588393b
    [root@shihaibin ~]#

    12、停止容器

    docker stop 容器名称或者容器ID

    [root@shihaibin ~]# docker stop mytomcat

    13、重启容器

    docker start 容器名称或者容器ID

    [root@shihaibin ~]# docker start mytomcat

    14、删除容器

    删除指定容器:docker rm 容器名称或者容器ID

    删除所有容器:docker rm 'docker ps -a -q'

    15、查看容器

    docker ps:查看正在运行的容器

    [root@shihaibin ~]# docker ps

    docker ps –a:查看历史运行过的容器

    [root@shihaibin ~]# docker ps –a

    >

    Docker 应用

    16、搭建 Tomcat 服务

    docker run -d --name=mytomcat -p 9000:8080 镜像

     注:-v /usr/local/webapps:/usr/local/tomcat/webapps  共享宿主机目录与容器目录。此操作可以去除。通过 docker cp命令上次要运行的war包

    [root@shihaibin ~]# docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:8
    e7338892631f6a32513828efdcdf9556b55a154537001557d9780a1f7867ed95

    [root@shihaibin ~]#

    17、部署 Web 应用

    两种方式:

    1、将 war 包上传到宿主机器,通过 docker cp 命令将宿主机器的 war 包上传到容器中的 tomcat 的 webapps 目录下

    以交互界面的方式进入容器中

    [root@shihaibin ~]# docker exec -it mytomcat /bin/bash
    root@020c28055968:/usr/local/tomcat# ls
    LICENSE  RELEASE-NOTES  bin  include  logs            temp    work
    NOTICE  RUNNING.txt    conf  lib      native-jni-lib  webapps
    root@020c28055968:/usr/local/tomcat# exit
    exit
    [root@shihaibin ~]# docker cp a.war mytomcat:/usr/local/tomcat/webapps
    [root@shihaibin ~]#

    2、根据共享目录直接把代码放到共享目录。例:-v /usr/local/webapps:/usr/local/tomcat/webapps 

          tomcat 会自动热部署,直接访问 Web 应用的路径即可。

    18、安装mysql

    1.安装mysql5.7 docker镜像

    拉取官方mysql5.7镜像 

    docker pull mysql:5.7

    查看镜像库

    docker images

     

    2.创建mysql容器

    在本地创建mysql的映射目录

    mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf

    在/root/mysql/conf中创建 *.cnf 文件(叫什么都行)

    touch my.cnf

    创建容器,将数据,日志,配置文件映射到本机

    docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --lower_case_table_names=1

    -d: 后台运行容器

    -p 将容器的端口映射到本机的端口

    -v 将主机目录挂载到容器的目录

    -e 设置参数

    注意最后参数是区分大小写配置,设置为不区分,mysql默认区分。

    启动mysql容器

    docker start mysql

     查看/root/mysql/data目录是否有数据文件

    使用工具连接测试

    19、安装nginx

    1.安装nginx

    [root@shihaibin ~]# docker run -di --name=mynginx -p 80:80 nginx
    cc6dc8d9adf896f2e491719a4ec57424f42f27e564e448b3ae42a28587f8aca5

    2.部署静态页面,使用docker cp 要拷贝的文件  mynginx:/usr/share/nginx/html

     这样就可以访问了。

    20、安装redis

     1.安装

    [root@shihaibin webapps]# docker run -di --name=myredis -p 6379:6379 redis
    46f535d75fedf2e2fcf82a85e2e745c71a6dfee431c703130ec4d9d38b0ee838


    21、迁移与备份

    21.1容器保存为镜像:

    (1).容器保存为镜像

    [root@shihaibin local]# docker commit mynginx mynginx_1
    sha256:c9d3d9ad7770c77a9e9fbe47d91dbaca6a785efc7801143fc772aadf17560a54

    (2).部署镜像为容器

    [root@shihaibin local]# docker run -di --name=mynginx2 -p 81:80 mynginx_1
    a7b9bb12eb831aeedb87adc0bc02da7a962945526e2c4020d8134353fee9968d

    (3).访问容器。里面包含容器里的已经配置好的内容

    只是端口发生变化。但是容器中之前的配置都被保留了。


    21.2镜像备份

    [root@shihaibin ~]# docker save -o mynginx.tar mynginx_1

     21.3镜像恢复

    [root@shihaibin ~]# docker load -i mynginx.tar

  • 相关阅读:
    ubuntu 下常用的命令(仅做记录)
    mysql5.7二进制包安装方法
    mysql5.6编译安装方法
    将yum下载的安装包保存到本地
    bash-completion--好用又强力的bash补全工具
    shell--破解RANDOM随机数
    shell--使用for循环统计一个网段内的在线主机
    shell--写一个脚本,批量创建10个用户用户名为userAdd1-10,并给他们随机密码
    shell--使用for循环批量创建10个随机小写字字母加固定字符的.txt文件,并写另一个脚本批量修改为.html文件
    如何选择开源许可证
  • 原文地址:https://www.cnblogs.com/shihaibin821/p/12731194.html
Copyright © 2011-2022 走看看