docker

http://www.runoob.com/docker/centos-docker-install.html  docker教程

安装Docker

yum install docker  

启动Docker
service docker start  

把Docker 加入到开机自启动
chkconfig docker on

去docker 仓库查找image
docker search centos   --no-trunc :显示完整的镜像描述;

下载image 到本地
docker pull elain/centos7.2

查看刚刚下载下来的image  docker images 

删除镜像   docker  rmi images

启动容器
容器是在镜像的基础上来运行的,一旦容器启动了,我们就可以登录到容器中,安装自己所需的软件或应用程序。既然镜像已经下载到本地,那么如何才能启动容器呢?
只需使用以下命令即可启动容器:
docker run -i -t -v /home/zf/software/:/home/software/ 25c5298b1a36 /bin/bash
这条命令比较长,我们稍微分解一下,其实包含以下三个部分:
docker run <相关参数> <镜像 ID> <初始命令>
其中,相关参数包括:
    -i:表示以“交互模式”运行容器
    -t:表示容器启动后会进入其命令行
    -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
假设我们的所有安装程序都放在了宿主机的/root/software/目录下,现在需要将其挂载到容器的/mnt/software/目录下。
需要说明的是,不一定要使用“镜像 ID”,也可以使用“仓库名:标签名”,例如:docker.cn/docker/centos:centos6。
初始命令表示一旦容器启动,需要运行的命令,此时使用“/bin/bash”,表示什么也不做,只需进入命令行即可。
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]  
 OPTIONS说明:
    -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
    -d: 后台运行容器,并返回容器ID;
    -i: 以交互模式运行容器,通常与 -t 同时使用;
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    --name="nginx-lb": 为容器指定一个名称;
    --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
    --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
    -h "mars": 指定容器的hostname;
    -e username="ritchie": 设置环境变量;
    --env-file=[]: 从指定文件读入环境变量;
    --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
    -m :设置容器使用内存最大值;
    --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
    --link=[]: 添加链接到另一个容器;
    --expose=[]: 开放一个端口或一组端口;
进入容器
docker exec -ti abe3a1f3063d /bin/bash  

重新进入容器

docker attach 44fc0f0582d9 

        但在,使用该命令有一个问题。当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。因为这个原因,所以docker attach命令不太适合于生产环境,平时自己开发应用时可以使用该命令。

进入容器后安装JDK 8
yum install java-1.8.0-openjdk.x86_64  

安装完后保持为新的镜像

docker  commit  容器ID  新名字

docker commit c2e57344d494   centos/java8  

重启启动容器
docker run -dt -p 8080:8080 -p 8990:8990 centos/java8 /bin/bash  
指定port range:
docker run -dt -p 7000-8000:7000-8000 centos/java8 /bin/bash
挂接本地磁盘到容器 docker run -dt -p 7000-8000:7000-8000 -v /usr/local/home:/usr/local/container/home centos/java8 /bin/bash

重新进入镜像,就像在 Linux下一样,执行你想做的操作吧,优先用如下命令:
docker exec -ti 5ed1587b3923 /bin/bash  

关闭并删除容器
docker ps -a  
docker stop abe3a1f3063d
docker rm abe3a1f3063d  


docker ps // 查看所有正在运行容器

docker stop containerId // containerId 是容器的ID
docker ps -a // 查看所有容器
docker ps -a -q // 查看所有容器ID

docker stop $(docker ps -a -q) //  stop停止所有容器

docker  rm $(docker ps -a -q) //   remove删除所有容器

退出容器
当以上步骤全部完成后,可使用exit命令,退出容器。
copy宿主机器的文件到容器:
docker cp /host-path/file <containerId>:/containter-path

docker cp /home/msg/name.tar 5ed1587b3923:/home/software 

#打包镜像文件,导出
[root@dbLunbo1 ~]# docker  save cb60914930a2 >tf_cv_num.tar

#镜像文件导入
docker load < tf_cv_num.tar

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值