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转发

 

posted on 2019-01-22 10:39  标配的小号  阅读(1455)  评论(0编辑  收藏  举报

导航