zoukankan      html  css  js  c++  java
  • docker常用命令问题汇总

    Docker简介

    docker可以用来创建虚拟环境跑应用,各个应用能起到隔离作用。

    使用方法也很简单,就是获取镜像,使用镜像,配置镜像,对应的应用就能快速跑起来了

    以httpd为例

    1.搜索镜像  docker search httpd

    2.获取镜像  docker pull httpd  

    3.运行镜像  docker run --name httpdtest -p 80:80 httpd #--name起名字方便识别。-p 80:80 容器端口:宿主机映射端口,可选。

    4.容器状态  docker ps(运行中的容器)或docker ps -a(所有状态的容器)

     5.进入容器  docker exec -it 容器id bash  #通过bash进入容器,容器id可通过docker ps获取

     6.删除镜像  docker rmi 镜像id

    7.重启容器  docker restart 容器id

    8.文件复制  docker cp 容器id:/容器文件目录 /宿主机目录   #将容器内部的文件复制到宿主机目录下

           docker cp /宿主机目录  容器id:/容器文件目录  #将宿主机目录内容复制到容器内部目录

    9.系统镜像  docker run -d -it --name centos7 centos /bin/bash  #运行centos镜像,-d后台运行,-it互动终端方式,/bin/bash启动bash否则会自动终止该centos容器

    10.指定版本  docker pull centos:7  #可以通过:后指定版本,例如默认centos的版本为8,我们可以这样指定为7的版本

    11.容器文件持久化

    容器有一个比较麻烦的地方,就是每次重启之后会导致容器内的文件重置为初始化状态。所以我们还需要对容器内的文件进行持久化配置

    持久化配置有两种方法

    方法一:直接复制。如docker cp 容器id:/etc/prometheus /zhao   #将容器内部的文件复制到宿主机的/zhao文件夹下

    方法二:docker run --name myprometheus -v /zhao/prometheus:/etc/prometheus -d 镜像id  #其中-v是指映射逻辑卷的意思,将宿主机上的/zhao/prometheus里的文件和文件夹复制到容器的/etc/prometheus里。-d是指后台运行

     问题汇总:

    1.问题描述:容器已启动,但是docker ps没有显示

    解决方法:docker ps -a查看全部docker应用

    补充说明:如有运行异常的,使用stop是停止不了的,需要使用docker rm 加上containerID才行。这个rm我还不确定,建议谨慎操作

    2.问题描述:提示httpd: Could not reliably determine the server's fully qualified domain name

    解决方法:find / -name httpd.conf然后查找ServerName,把改参数值改为 localhost:80,然后重启docker的httpd

    补充说明;注意端口不要被占用了

    3.问题描述:编辑文件时,发现没有vim命令,也无法yum安装,因为yum命令也没有。

    解决方法:(并不是通用的,只是部分容器可行):

    进入容器内部,执行以下命令:

    apt-get update
    apt-get install vim

    4.问题描述:容器开启后,外部无法正常访问服务,但是宿主机测试该服务是正常的

    可能原因:Linux内核限制了网络转发导致  

    解决方法:sysctl -w net.ipv4.ip_forward=1  #允许ipv4转发

  • 相关阅读:
    事件
    dom对象
    逻辑运算和作用域的问题
    json
    数组
    字符串
    函数
    js的数据类型和全局方法
    js
    10.16 js内容
  • 原文地址:https://www.cnblogs.com/biaopei/p/10302470.html
Copyright © 2011-2022 走看看