zoukankan      html  css  js  c++  java
  • Linux Centos7.5从docker的安装到容器的部署运行

    环境:

      Win10 内的 VMware workstation(Centos7 64位)

      所有命令皆为 root 用户, 非 root 用户应在命令前加 sudo

    查看系统版本命令: cat /etc/redhat-release

    安装Docker: yum install docker

    启动: service docker start

    设置开机启动: chkconfig docker on

    查看本地镜像列表: docker images

    从官方仓库搜索镜像: docker search <关键词>

      例: docker search centos

    从官方仓库拉取一个centos镜像: docker pull <镜像名>

      例: docker pull centos

    移除一个本地镜像: docker rmi <镜像id>

    用centos镜像运行一个docker容器: docker run  -t  -i  -d -p 8181:81 -p 8282:82  -v /home/package:/home -v /etc/localtime:/etc/localtime:ro  --privileged=true  --name  yjy-server  centos  /bin/bash

     -i: 让容器的标准输入保持打开

     -t: 分配一个伪终端并绑定到容器的标准输入上

     -d: 守护态运行容器(后台运行)

     -p: 将主机的8181端口绑定到容器的81端口, 这样访问主机的8181端口就相当于访问了容器的81端口(可多次使用-p参数绑定多个端口)

     -v /home/package:/home: 将主机的/home/package目录挂载到容器的/home目录(可以事先把 jdk, mysql等安装包存放在主机的package目录下)

     -v /etc/localtime:/etc/localtime:ro: 挂载主机时间文件到容器, 保证容器与宿主机时间同步, ro表示只读 (否则会出现容器时间不对的问题)

     --privileged=true: 给容器增加特权, 否则在容器内访问挂载目录时会提示没有权限

     --name yjy-server: 将容器自定义命名为 yjy-server

     centos: 镜像名称

     /bin/bash: 容器启动后运行 bash脚本解释器

    查看所有容器: docker ps -a

    查看某个容器的详细信息: docker inspect <容器id>

    从容器信息中找到容器的内网ip地址(启动服务时可能用得着): NetworkSettings > IPAddress

    关闭运行中的容器: docker stop <容器id>

    启动已关闭的容器: docker start <容器id>

    重启一个正在运行的容器: docker restart <容器id>

    删除一个容器: docker rm <容器id>

    进入一个正在运行的容器

      方式1: docker attach <容器id>

        缺点: 退出容器时, 容器会自动关闭, 而正常情况下往往需要容器继续在后台运行

      方式2: docker exec -it <容器id> /bin/bash

      方式3: 

        获取容器进程PID: docker inspect --format "{{ .State.Pid }}" <容器id>

        进入容器: nsenter --target <容器进程PID> --mount --uts --ipc --net --pid

    进入到挂载目录: cd /home

    解压jdk压缩文件: tar -zxvf  server-jre-8u191-linux-x64.tar.gz

    将解压后的文件夹移动至/usr/local/:  mv  jdk1.8.0_191/  /usr/local/jdk1.8

    设置环境变量:

      方式1:

        配置/etc/profile 追加内容: 

          export JAVA_HOME=/usr/local/jdk1.8
          export PATH=$PATH:$JAVA_HOME/bin

        加载生效: source  /etc/profile

        缺点: 重新进入容器后环境变量将失效, 每次进入容器都必须手动加载才行

      方式2:

        配置/root/.bashrc 追加内容:

          export JAVA_HOME=/usr/local/jdk1.8
          export PATH=$PATH:$JAVA_HOME/bin

        加载生效: source /root/.bashrc

    测试jdk是否安装成功:  java -version

    安装其他软件

    安装lrzsz(用于上传文件到容器或从容器下载文件): yum install lrzsz

    新建目录: mkdir /var/server

    进入目录: cd /var/server

    上传服务jar包(server.jar)到目录: rz

    运行服务: java -jar server.jar --server.address=容器的内网ip地址  --server.port=81

    现在, 在外部访问虚拟器 http://虚拟机ip:8181/ 就能访问到容器的 81 端口服务了

    至此, 容器服务部署完成

    将容器保存为新镜像: docker commit  -m  "这里写容器说明"  -a  "这里写你的名字<容器id>  <镜像名>:<标签>

      例: docker commit  -m  "测试创建镜像"  -a  "yjy 1234567@qq.com"  dfgsd34fss3  docker.io/centos-yjy:latest

    导出容器快照到本地文件: docker  export  <容器id>  >  /home/centos-yjy.tar

    导入容器快照文件为镜像: docker import  /home/centos-yjy.tar  <新镜像名称>

    将本地镜像导出为镜像文件: docker save  -o  <导出文件名>  <镜像名>:<标签>  

      例: docker save  -o  /home/centos-yjy.tar  centos-yjy:latest

    从本地文件载入镜像: docker load  <  /home/centis-yjy.tar

  • 相关阅读:
    非凸问题寻优
    非凸问题寻优
    函数的微分表
    函数的微分表
    图形的认识(curve,surface,hypersurface)
    几种Java写webservice的比较
    C#利用lambda在函数中创建内部函数
    uva 387 A Puzzling Problem (回溯)
    HDU 4336 Card Collector 数学期望(容斥原理)
    【ArcGIS 10.2新特性】Portal for ArcGIS新特性
  • 原文地址:https://www.cnblogs.com/imyjy/p/10100712.html
Copyright © 2011-2022 走看看