DOCKER容器的基本使用(一)

环境:

主机:装有centos7.2的物理机 I P:192.168.122.1            关闭防火墙  selinux状态为disabled

软件:docker-engine-1.10.3-1.el7.centos.x86_64.rpm

docker-engine-selinux-1.10.3-1.el7.centos.noarch.rpm

操作:

安装软件 yum install docker-engine-1.10.3-1.el7.centos.x86_64.rpm

docker-engine-selinux-1.10.3-1.el7.centos.noarch.rpm

启动    systemctl start docker

查看docker信息    docker version

导入docker镜像   docker   load   -i  centos.tar

查看docker镜像   docker   images

运行容器

1>      docker run -it  --name test  rhel7  bash      在前台bash交互式运行

#####开启容器并进入交互式界面:ctrl+d 会直接关闭容器退出交互式界面    ctrl+p+q 退出交互式界面但不会关闭容器

2>      docker run -d  --name test1  nginx         -d表示打入后台运行

3> docker run -d  --name  nginx  -v index.html:/usr/share/ngin/html/index.html  -p  8080:80  nginx    创建容器  -v 将本地的index.html 文件挂载到容器中    -p端口映射   将容器的80端口映射到物理机的8080

可以通过访问物理机的8080端口或容器的IP 来访问容器的nginx

4>  docker create --name file -v /tmp/data1:/data1  -v /tmp/data2:/data2 ubuntu bash        添加卷容器  卷容器可以被调用在新建的容器上作与卷容器相同的挂载

5>  docker  run  --rm  --volumes-from file -v /tmp/backup:/backup ubuntu tar cf /backup/back.tar  data1      创建一个容器,执行将data1打包到/backup/后 删除容器 --volumes-from 调用file容器的挂载 令新容器也有相同的挂载

6>   docker run -it --name  ubuntu --net host ubuntu bash  运行一个容器 --net表示指定容器使用网络为host   这样容器会跟物理机使用相同的网络信息 会开启相同的网络端口   但是会发生资源争抢

7>    docker run -it --name  vm1 --net none ubuntu bash  运行一个容器、网络信息为空    方便自定义配置

对容器vm1的网络配置如下:

ip link add name veth0 type veth peer name veth1 创建容器虚拟网络接口

brctl  addif docker0 veth0 将一段接到本地docker0上

ip link set  dev veth0 up

ip link set  dev veth1 up     开启接口端状态

docker inspect -f ‘{{.State.Pid}}‘ vm1   过滤出容器vm1的Pid为5794

ip netns  add test  添加网络命名空间test

ip netns list    查看列表

ln -s /proc/5794/ns/net  /var/run/netns/5794做软连接

ip link  set veth1  netns 5794      将虚拟网卡接口veth1添加到5794上

在容器中通过ip addr show可以看到   添加了一个设备veth1

ip netns exec 5794 ip addr add 172.17.0.10/24 dev veth1    在物理机上设置容器VM1的网络地址为172.17.0.10/24

ip netns exec 5794 ip link set veth1 up     启用设备veth1

在容器中查看

容器IP设置成功

docker常用操作:

Docker ps       查看当前正在运行的容器

Docker  ps  -a   查看所有容器 (包括为运行的容器)

Docker   ps  -q    查看容器ID

Docker  stop/start   test    关闭或打开容器test这里可以使用容器名或者容器ID都可以

Docker logs  test  查看容器的日志

Docker  attach   test      进入容器

Docker  rm   test    删除容器

Docker  stop   `docker   ps   -aq`    停止所有容器

Docker  rm  `docker   ps   -aq`    删除所有容器    容器删除前需要先停止

时间: 2024-10-07 07:32:08

DOCKER容器的基本使用(一)的相关文章

关于自动化部署之docker容器的折腾小记

docker的英文本意是码头工人,也就是搬运工,这种搬运工搬运的是集装箱(Container),集装箱里面装的可不是商品货物,而是任意类型的App,Docker把App(叫Payload)装在Container内,通过Linux Container技术的包装将App变成一种标准化的.可移植的.自管理的组件,这种组件可以在你的latop上开发.调试.运行,最终非常方便和一致地运行在production环境下. 具体什么是docker,你们自己找资料吧,应该好理解.   可以说是个运维的利器,可以把

Docker容器基本知识

一.Docker 简介 1.1什么是Docker 简单的说Docker是一个构建在LXC之上的,基于进程容器(Processcontainer)的轻量级VM解决方案: 1.2为什么要用Docker而不是用虚拟机 在公司中的一个很大的用途就是可以保证线下的开发环境.测试环境和线上的生产环境一致.当年在 Baidu 经常碰到这样的事情,开发把东西做好了给测试去测,一般会给一坨代码和一个介绍上线步骤的上线单.结果代码在测试机跑不起来,开发就跑来跑去看问题,一会儿啊这个配置文件忘了提交了,一会儿啊这个上

Docker容器管理

创建容器: docker create -it [NAME]:[TAG] 启动容器: docker start ID 创建并启动容器: docker run -it [NAME]:[TAG] COMMAND [PARAMS] -i:让容器的标准输入保持打开. -t:让Docker分配一个伪终端. -d:让Docker容器在后台以守护态形式运行. 停止容器: docker stop ID 首先向容器发送SIGTERM信号,等待一段时间后再发送SIGKILL信号终止容器. docker kill I

Docker 网络之pipework 工具(3)单主机Docker容器VLAN划分

pipework不仅可以使用Linux bridge连接Docker容器,还可以与OpenVswitch结合,实现Docker容器的VLAN划分.下面,就来简单演示一下,在单机环境下,如何实现Docker容器间的二层隔离.为了演示隔离效果,我们将4个容器放在了同一个IP网段中.但实际他们是二层隔离的两个网络,有不同的广播域. 安装openvswitch 安装基础环境 [[email protected] ~]# yum -y install gcc make python-devel opens

使用Docker容器来源码编译etcd

背景 etcd是CoreOS公司开发的分布式键值对存储库.在Kubernetes中,我们需要使用etcd作为所有REST API对象的持久化存储. 不幸的是,在github的release中,CoreOS将etcd的二进制可执行文件都放在了亚马逊的S3存储上,在国内访问非常慢.因此,我们只能通过源码编译etcd. 过程 1. 下载etcd源码. $ git clone https://github.com/coreos/etcd.git $ cd etcd 2. 根据实际情况,选择合适的版本.如

docker容器的数据卷以及使用方式

            Docker容器的数据卷 想要了解Docker Volume,首先我们需要知道Docker的文件系统是如何工作的.Docker镜像是由多个文件系统(只读层)叠加而成.当我们启动一个容器的时候,Docker会加载只读镜像层并在其上(即镜像栈顶部)添加一个读写层.如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所隐藏.当删除Docker容器,并通过该镜像重新启动时,之前的更改

docker容器网络通信原理分析

概述 自从docker容器出现以来,容器的网络通信就一直是大家关注的焦点,也是生产环境的迫切需求.而容器的网络通信又可以分为两大方面:单主机容器上的相互通信和跨主机的容器相互通信.而本文将分别针对这两方面,对容器的通信原理进行简单的分析,帮助大家更好地使用docker. docker单主机容器通信 基于对net namespace的控制,docker可以为在容器创建隔离的网络环境,在隔离的网络环境下,容器具有完全独立的网络栈,与宿主机隔离,也可以使容器共享主机或者其他容器的网络命名空间,基本可以

如何设置Docker容器中Java应用的内存限制

如果使用官方的Java镜像,或者基于Java镜像构建的Docker镜像,都可以通过传递 JAVA_OPTS 环境变量来轻松地设置JVM的内存参数.比如,对于官方Tomcat 镜像,我们可以执行下面命令来启动一个最大内存为512M的tomcat实例 docker run --rm -e JAVA_OPTS='-Xmx512m' tomcat:8 在日志中,我们可以清楚地发现设置已经生效 "Command line argument: -Xmx512m" 02-Apr-2016 12:46

对docker容器的增加或减少进行报警

需求: 当启动一个docker容器时立即发送报警,当停止一个docker容器时立即发送报警, 说明: 脚本只能检测UP状态,对restarting状态不进行处理,加入定时任务每分钟执行一次(执行频率自定义),该脚本的目的只是为防止异常容器启动,在我们规定名称外的定义为异常容器,在匹配容器名称的时候可以通过"grep -v lyj_ " 来对统一前缀的容器进行过滤 脚本内容: #!/bin/bash # */1 * * * * bash /opt/docker_process_monit

docker 容器常用命令

1 启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动. 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器. 新建并启动 所需要的命令主要为 docker run 例如,下面的命令输出一个 "Hello World",之后终止容器. [[email protected] ~]# docker run docker.io/centos:v1 /bin/echo "hello wor