1. 安装docker

  系统centos 7.2

  yum -y install docker-io

  service docker start

  安装完毕后执行 docker version 或者docker info 查看docker 信息是否安装成功

2. 下载镜像

  执行命令 docker search centos 查看centos的镜像资源, 选择一个镜像

  执行 docker pull docker docker.io/centos 下载镜像, docker.io/centos 就是上条命令查询出来的镜像名

  执行 docker images 查看我们本地的镜像资源

3.运行镜像

  执行命令 docker run -it docker.io/centos /bin/bash ,  意思是使用image创建container并进入交互模式, login shell是/bin/bash

  docker start/stop/restart <container> :开启/停止/重启container
    docker start [container_id] :再次运行某个container (包括历史container)
    docker attach [container_id] :连接一个正在运行的container实例(即实例必须为start状态,可以多个窗口同时attach 一个container实例)
    docker start -i <container> :启动一个container并进入交互模式(相当于先start,在attach)

docker run -i -t <image> /bin/bash :使用image创建container并进入交互模式, login shell是/bin/bash
    docker run -i -t -p <host_port:contain_port> :映射 HOST 端口到容器,方便外部访问容器内服务,host_port 可以省略,省略表示把 container_port 映射到一个动态端口。
    注:使用start是启动已经创建过得container,使用run则通过image开启一个新的container。

 docker ps -a 查看所有往过启动过的容器 

4.安装jdk

  首先本地某路径如 /root 下存放了jdk 安装包 jdk-7u80-linux-x64.tar.gz

  docker run -it -v /root:/root docker.io/centos /bin/bash , 启动一个镜像,并把本地/root 路径挂载到 镜像里的 /root路径下面, 并且进入交互模式

  cd /usr/local/

  tar zxf /root/jdk-7u80-linux-x64.tar.gz

  ln -s jdk1.7.0_0 jdk

  vi /etc/profile

  exit 退出容器

  exit退出容器会关闭容器,

  docker.ip/centos 镜像并不包含我们刚安装的jdk,  我们要制作一个包含了jdk的镜像给以后使用

  执行命令 docker commit e15e4ce2355 devil/jdk  ,生成一个新镜像, 指定创建的new iamge来自于container id e15e4ce2355,此外还为新建的image定义一个组合devil/jdk

  执行命令 docker run -it devil/jdk 就启动我们刚制作的镜像了, 如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器

5.环境变量

  在容器里配置的jdk环境变量在每次docker run启动的时候不会生效,需要外面传递环境变量  ,如 docker run -it -e "JAVA_HOME=/usr/local/jdk" -e "PATH=$PATH:/usr/local/jdk/bin" devil/jdk2 /bin/bash

6.端口映射

  如果我们容器里启动了一个tomcat ,8080端口,想外面也能访问到容器的8080端口,需要启动的时候指定端口映射

  如 docker run -it -p 8080:8080 -e "JAVA_HOME=/usr/local/jdk" -e "PATH=$PATH:/usr/local/jdk/bin" devil/jdk2 /bin/bash

  

7.后台启动

  docker run -d -e "JAVA_HOME=/usr/local/jdk" -e "PATH=$PATH:/usr/local/jdk/bin" devil/jdk2  /usr/bin/supervisord

  PS: docker run 要不就是-it 前段交互方式启动, 要不就是-d 后台运行,但是后台运行必须有一个一直挂起的进程 ,比如这里的/usr/bin/supervisord

  Docker容器后台运行,就必须有一个前台进程.
  容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的

8.启动多个容器

  我们在已经启动了一个容器的基础上再启动一个容器,使用同一个镜像

  docker run -it --name deviltest --link goofy_hypatia:tomcat -e "PATH=$PATH:/usr/local/jdk/bin" devil/jdk2 /bin/bash   ,  使用这个命令把两个容器连接起来

  docker attach 第二个容器id,  cat /etc/hosts ,可以看到 上面配置的tomcat 别名指向第一个容器

转载于:https://www.cnblogs.com/devilwind/p/7122369.html

docker 基础操作相关推荐

  1. Docker 之 Docker基础操作

    第1章 Docker基础操作 1.1 常用的命令 0) 安装Docker 环境 yum -y install docker 1)   指定 IP,DNS 网络位启动Docker容器 a)  docke ...

  2. Docker基础操作,原来这才是正确打开Docker的新方式!

    文章目录 前言 一.Docker操作镜像 1.拉取镜像 2.查看镜像 3.删除镜像 4.保存镜像 5.读取镜像 5.镜像帮助命令 二.Docker容器基础操作 1.创建并运行容器 2.查看容器运行状态 ...

  3. 【保姆级教程】Docker基础操作篇-Dokerfile(含源码)

    Docker系列文章: 你好!Docker[概念+源码+保姆式教程] [保姆级教程]Docker进阶操作篇-Compose(含源码) Docker常用命令 [保姆级教程]VMware+CentOS 7 ...

  4. docker基础操作

    一.docker安装====== 1.1.官网 https://docs.docker.com/engine/install/ 1.2.如果有旧版本(卸载docker) sudo yum remove ...

  5. 记录一次docker基础操作错误Error response from daemon: You cannot remove a running container

    项目场景: 练习docker基础操作的时候出现一个错误,导致我想进入容器,怎么都进不去,另外,写博客的时候一定不要打开多个编辑页面,很可能导致你写的东西都不作数,我刚刚就是这样操作,导致现在没有内容, ...

  6. docker 基础命令操作 镜像以及容器的基本操作演示

    tomcat启动后',可以通过页面访问到默认页面,可以更加直观的显示出来:我们就以tomcat为例,对镜像,容易的基础操作进行演示: 1.查询镜像命令 docker search tomcat , 运 ...

  7. docker基础命令操作

    docker基础命令操作 一.容器生命周期管理 1.1 run 1.2 启动.停止.重启容器 1.3 kill--杀掉一个运行中的容器 1.4 rm--删除容器 1.5 pause/unpause 命 ...

  8. Linux docker(01) 基础操作

    该系列文章的目的旨在docker的基础学习和docker的实战应用. 0 why docker 在这之前我们需要了解为啥要使用docker这个东东?简单来说: 这玩意儿根虚拟机功能差不多,但比虚拟机快 ...

  9. Docker基础认识,镜像、容器操作及镜像的制作

    一.了解虚拟机和容器的区别 二.Docker概述 三.安装Docker 1.安装依赖包 2.设置阿里镜像源 3.安装Docker-CE 四.docker常规操作 1.镜像加速(提高镜像下载速度) 2. ...

最新文章

  1. 进化算法_遗传算法相关资料
  2. 云计算 - OpenStack
  3. 转载:写给计算机专业的朋友们
  4. 使用yum命令安装mysql_Linux Centos 下使用yum 命令安装mysql实现步骤
  5. sql服务器文件夹共享,sqlserver2017共享功能目录路径不可改的解决方法
  6. python解析pdf得到每个字符的坐标
  7. 小米捐赠5亿启动“小米青年学者”项目 5年支持100所高校
  8. Weak References 和 Soft reference
  9. 敏捷开发团队管理系列之二:程序与测试团队I
  10. 工作中使用到的单词(软件开发)_2022-02-26_备份
  11. You (root) are not allowed to access to (crontab) because of pam configuration
  12. 多媒体计算机技术的核心技术是,多媒体计算机技术与教学
  13. 使用 WebSocket 实现一个网页版的聊天室(摸鱼更隐蔽)
  14. 云上部署oracle rac,在青云上部署oracle rac全过程
  15. 数据中台的终点是DataOps还是DaaS?
  16. C语言指针 * 和 总结
  17. 电子投标如何审查串标围标?
  18. 软件项目管理系统-采购商品管理-采购订单一览
  19. 【市场分析1】FinTech之香港虚拟银行VB
  20. 极智开发 | 谈谈 GPU 利用率

热门文章

  1. 《scikit-learn》朴素贝叶斯
  2. PRML-系类二之2.1
  3. [错误总结]升级spring-boot->2.6.2|hiberate->5.4.33.Final|spring cloud->2021.0.0 |spring admin->2.4.1
  4. 【局部敏感度的问题代码实现】差分隐私代码实现系列(八)
  5. C++/C--删除string末尾字符的方法【转载】
  6. MyBatis框架 传参、事务、缓存(二级)
  7. 136 - Ugly Numbers
  8. 查询工资最低的3名员工的职工工号、姓名和收入_工资条6个常识必须掌握,事关你的权益!...
  9. sata接口_解决主板SATA接口不足:乐扩PCIe2.0转8口SATA3/6G扩展卡
  10. influxdb mysql对比_influxdb基础入门