作为一名C++程序员,在实际项目中,经常需要将我们的程序作成镜像,然后在docker中运行。那么我们将如何做那?下面以一个例子作为讲解:
操作步骤1.将项目的执行文件、依赖的库、相关配置放在同一文件夹下,如下图所示:
bin目录:依赖的库和可执行程序
json目录:配置文件
platformconfig目录:框架依赖的配置文件
2.编写dockerfile文件,放在项目文件夹下,如上图所示
dockerfile文件如下:
3.查看本地所有的镜像
docker images
其中,192.168.3.40:5000/centos:7.3.1611为基础镜像
4.创建镜像
docker build –t fmonitor:v1.00 .
不要忘记最后那个点
出现Successfully built **** 表示成功!
5.查看生成的镜像
图中,红色部分,表示新生成的镜像.
6.生成容器并后台运行
docker run –d –name=”FMonitor” –p 6001:6001 fmonitor:v1.00
返回一个ID串,表名执行成功!
7.查看容器ID
docker ps -a
图中,红色部分表示新生成的容器ID。
8. 查看日志
docker logs -f -t --tail n 容器ID
9.停止运行中的容器
返回一个ID号,表示成功.
10.重启停止运行的容器
红色部分表示,此容器已经停止运行。
执行docker restart 容器ID,重启docker 容器。
注:修改过配置文件之后,需要执行重启容器,才能生效。
问题1:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
执行docker ps –a 出现如下错误提示:
原因分析:无法连接到docker 守护进程,即docker 服务没有开启
解决方法:
systemctl daemon-reload systemctl restart docker.service
问题2:Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission denied
执行docker ps –a 提示如下错误:
原因分析:
执行docker.sock文件权限不够
解决方法1:sudo chmod 666 /var/run/docker.sock
解决方法2:su root
问题3:docker logs –tail 容器ID
原因分析:docker logs 命令需要一个参数
解决方法:在—tail后面加上一个参数
docker logs –tf –tail 容器ID



