xxggmmxx 发表于 2018-5-29 08:47:37

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   -icentos.tar
  查看docker镜像   docker   images

  运行容器
  1>      docker run -it--name testrhel7bash      在前台bash交互式运行   
   #####开启容器并进入交互式界面:ctrl+d 会直接关闭容器退出交互式界面    ctrl+p+q 退出交互式界面但不会关闭容器
  2>      docker run -d--name test1nginx         -d表示打入后台运行

  3> docker run -d--namenginx-v index.html:/usr/share/ngin/html/index.html-p8080:80nginx    创建容器-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> dockerrun--rm--volumes-from file -v /tmp/backup:/backup ubuntu tar cf /backup/back.tardata1      创建一个容器,执行将data1打包到/backup/后 删除容器 --volumes-from 调用file容器的挂载 令新容器也有相同的挂载

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

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

  对容器vm1的网络配置如下:
ip link add name veth0 type veth peer name veth1 创建容器虚拟网络接口
brctladdif docker0 veth0 将一段接到本地docker0上
ip link setdev veth0 up
ip link setdev veth1 up   开启接口端状态
docker inspect -f '``.`State`.`Pid`' vm1   过滤出容器vm1的Pid为5794

  ip netnsadd test添加网络命名空间test
ip netns list    查看列表
ln -s /proc/5794/ns/net/var/run/netns/5794做软连接
           ip linkset veth1netns 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       查看当前正在运行的容器
  Dockerps-a   查看所有容器 (包括为运行的容器)
  Docker   ps-q    查看容器ID
  Dockerstop/start   test    关闭或打开容器test这里可以使用容器名或者容器ID都可以
  Docker logstest查看容器的日志
  Dockerattach   test      进入容器
  Dockerrm   test    删除容器
  Dockerstop   `docker   ps   -aq`    停止所有容器
  Dockerrm`docker   ps   -aq`    删除所有容器    容器删除前需要先停止
  
页: [1]
查看完整版本: DOCKER容器的基本使用(一)