docker组成 以及启动服务遇到的错

Docker 创建镜像,配置镜像file,

1、什么是docker?

把所有环境固化 ,这样在某个固定的环境中运行某个项目 只需要把 固化的环境拿过来,直接运行 ,这样  把项目程序 放到任何服务器上都可以运行。

2、什么是镜像?

镜像: 基础镜像:操作系统镜像,debian、ubertu、windows、,所有的操作系统都能打包成一个镜像,  jdk 、maven也可以打包成一个镜像

3、镜像 有什么作用?

把镜像copy出来放到容器中运行。一个完整的Docker镜像可以支撑一个Docker容器的运行

4、什么是docker容器?

把多个镜像放到容器中,运行容器 相当于 一个系统就运行起来了,,比如:一个debian 的镜像,一个jdk环境的镜像,一个maven镜像,一个代码程序打包的镜像,一个mysql镜像 组合起来,就能运行出一个程序来

通过镜像来运行时我们常常将提供的环境称为容器。

子镜像,父镜像

Docker镜像的内容主要包含两个部分:第一,镜像层文件内容;第二,镜像json文件。

Dockerfile 是软件的原材料,Docker 镜像是软件的交付品,而 Docker 容器则可以认为是软件的运行态。

Dockerfile构建出Docker镜像,通过Docker镜像运行Docker容器。

解决docker verision images,info,-d等命令报错的问题

报错:

FATA[0000] Get http:///var/run/docker.sock/v1.18/version: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS? [email protected]:/$ docker version

解决办法 :进入  把 ///var/lib/docker下的devicemapper清掉  rm -r devicemapper/ ,在 docker 目录下 启动docker服务      service docker  start/restart/stop。。

Docker创建镜像

总共有两种方法: 
1.用别人的镜像创建。 
1.1、先下载一个容器 
命令: Docker pull training/sinatra 
1.2、然后用容器启动这个镜像 
命令:docker run -t -i training/sinatra /bin/bash 
1.3、接下来就是给使用中的容器,添加自己需要的工具等,来组装自己的运行环境。 
1.4、将上一步组装好的环境copy一份镜像。 
命令: 
docker commit -m “Added json gem” -a “KateSmith” \ 
0b2616b0e5a8 ouruser/sinatra:v2 
说明:此处命令和Git的命令svn的命令有些类似。 docker commit 是提交的意思,类似告诉svn服务器我要生成一个新的版本。 
-m 就是添加注释,-a是作者。 
“\” 后面跟的是 1.2的容器环境id 要生成的镜像的名称 
容器的id:就是你每次输入命令行@后面的字符 
例如:[email protected] 
镜像名称:hub的名称/镜像名称:tag 
1.5、docker images命令查看自己创建的镜像。 
1.6、使用新建立的镜像 
命令:docker run -t -i 要生成的镜像的名称 /bin/bash

2.使用Dockerfile 
两种创建方法相比,就类似以前的Java项目开发,在没有使用maven以前,所以的东西都是现在好了放到项目中,如果有新的开发人员进来,需要把项目的jar文件都拷贝给他。但是使用maven以后就是不需要了。Dockerfile就类似这样的道理 
2.1、创建镜像所在的文件夹和Dockerfile文件 
命令: 
1、mkdir sinatra 
2、cd sinatra 
3、touch Dockerfile 
2.2、在Dockerfile文件中写入指令,没一条指令都会更新镜像的信息例如: 
# This is a comment 
FROM ubuntu:14.04 
MAINTAINER Kate Smith [email protected] 
RUN apt-get update && apt-get install -y ruby ruby-dev 
RUN gem install sinatra 
格式说明: 
每行命令都是以 INSTRUCTION statement 形式,就是命令+ 清单的模式。命令要大写,“#”是注解。 
FROM 命令是告诉docker 我们的镜像什么。 
MAINTAINER 是描述 镜像的创建人。 
RUN 命令是在镜像内部执行。就是说他后面的命令应该是针对镜像可以运行的命令。 
2.3、创建镜像 
命令:docker build -t ouruser/sinatra:v2 . 
docker build 是docker创建镜像的命令 
-t 是标识新建的镜像属于 ouruser的 
sinatra是仓库的名称 
:v2 是tag 
“.”是用来指明 我们的使用的Dockerfile文件当前目录的 
2.4、创建完成后,从镜像创建容器 
docker run -t -i ouruser/sinatra:v2 /bin/bash

到此两种创建镜像的方式就完毕了。

问题: 以上两种方式都是以Docker的镜像仓库为基础,那我用自己的系统作为镜像怎么办那?

有使用工具的,有使用镜像模板的等等,可以百度 
别人已经解决了这个问题

时间: 2024-12-19 07:17:25

docker组成 以及启动服务遇到的错的相关文章

Docker 安装完启动服务报错

[[email protected]1 ~]# docker images Cannot connect to the Docker daemon. Is the docker daemon running on this host? [[email protected]-1 ~]# systemctl start docker.service Job for docker.service failed because a timeout was exceeded. See "systemctl

ceph升级到10.2.3 版本启动服务报错:Unknown lvalue 'TasksMax' in section 'Service'

#### ceph软件包升级完成,执行命令重启服务 sudo systemctl restart [email protected]"$HOSTNAME" #### 故障现象 服务可以启动,启动后显示有报错信息: Nov 23 17:14:45 ceph-6-12 systemd[1]:        [/usr/lib/systemd/system/[email protected]:18] Unknown lvalue 'TasksMax' in section 'Service'

Docker Container同时启动多服务 supervisor

Docker Container同时启动多服务 转载请注明来自:http://blog.csdn.net/wsscy2004 昨天踩了个天坑,我有一个基本的镜像centos6.5+ssh,是通过Dockerfile build的,利用CMD命令启动ssh. 通过centos6.5+ssh镜像,我想build一个rabbitmq镜像,Dockerfile中CMD启动rabbitmq服务.虽然我知道Dockerfile中的CMD只能有一个,但没想到创建另一个image,也会继承FROM image的

django启动服务时报错:RuntimeError: Model class index.models.User doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

在django框架中用命令启动服务时报如下错误: RuntimeError: Model class index.models.User doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS. 解决方法: 我是这样解决的: 检查setting.py里面的INSTALLED_APPS,发现应用没有注册.把应用注册之后,重启服务就好了 其它解决方法,以后遇到了再补充. django启动服

Windows10OracleDB登陆报错ORA-12560,启动DB服务报错 1069由于登陆失败而无法启动服务

环境说明 Windows10,Oracle 11.2.0.4 单实例 CMD> C:\Users\Thinkpad>sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sat Feb 1 15:18:45 2020 Copyright (c) 1982, 2017, Oracle. All rights reserved. ERROR: ORA-12560: TNS:protocol adapter error Ente

COGNOS10启动服务报错 问题解决

今天安装了在我的机器上(WIN7 64位)安装了COGNOS 10.2, 然后进入configuration各种测试都通过了,但是启动服务的时候一直不成功(具体错误没有记录下来...) 后来我按网上帖子的意见,把以前安装的JAVA全卸载了,然后重装了一遍Cognos BI Server 10.2 64Bit, 之后用COGNOS自带的jre设置了JAVA_HOME变量: JAVA_HOME: C:\Program Files\ibm\cognos\c10_64\bin64\jre\6.0 之后启

添加tomcat开机启动服务时报错:Neither the JAVA_HOME nor the JRE_HOME enviromment variable is defined

首先,参考的 https://blog.csdn.net/wabil/article/details/78818249 的方式添加 tomcat 开机启动,这种方式不需要添加 setenv.sh 文件,轻量级,非常方便,具体方式如下: 1. 创建一个服务文件 vim /lib/systemd/system/tomcat.service 复制如下内容,修改后保存: [Unit]Description=tomcatAfter=network.target [Service]Type=oneshotE

docker Failed to get D-Bus connection 报错

docker Failed to get D-Bus connection 报错 原创憬薇2016-01-15 11:25:26评论(10)40278人阅读 在centos7的容器里面出现了一个BUG,就是serveice启动服务的时候出现报错,不能用service启动服务.[[email protected] /]# service httpd startRedirecting to /bin/systemctl start  httpd.serviceFailed to get D-Bus

Docker 添加容器SSH服务(4)

title: Docker 添加容器SSH服务(4) date: 2018-12-15 20:26:12 tags: Docker categories: Docker copyright: true --- Docker是基于Go语言实现的开源容器项目,Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,Docker诞生于2013年年初,最初发起者是dotCloud公司