docker笔记

docker命令可以参考:http://www.bubuko.com/infodetail-1345326.html

搜索镜像:https://hub.docker.com

镜像加速:https://www.docker-cn.com/registry-mirror

安装docker:
    检查内核版本,必须是3.10及以上
        uname -r
    安装docker
        yum install docker
    输入y,确认安装
启动docker: systemctl start docker
看版本:docker -v
设置开机启动:systemctl enable docker

下载zookeeper:docker pull registry.docker-cn.com/libraray/zookeeper

删除其中一个镜像:docker rmi -f runoob/ubuntu:v4

用yum install docker时:

    Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory : 106 M RSS (450 MB VSZ)
    Started: Thu Jun 14 12:55:27 2018 - 03:09 ago

    State  : Sleeping, pid: 2878

可能是系统自动升级正在运行,yum在锁定状态中。 
已经有一个yum进程在运行了,使用kill干掉它:

01

02

03

04

# kill -s 9 25960

# ps aux|grep yum

root      6744  0.0  0.0 103260   900 pts/1    S+   14:59   0:00 grep yum

root     25960  0.0  0.0      0     0 ?        Z    Sep19   0:01 [yumBackend.py] <defunct

如果kill对付不了它,可以通过强制关掉yum进程:

01

#rm -f /var/run/yum.pid

然后就可以使用yum了。

命令:

docker run -e ES_JAVA_OPTS="-Xms520m -Xmx520" -d -p 9200:9200 -p 9300:9300 --name  ES01 5acf0e8da90b

-e ES_JAVA_OPTS="-Xms520m -Xmx520"(指定初始堆内存和最大堆内存)

-d 后台运行  -p 虚拟机中的端口号 : 容器中的端口号 和做映射(每启动一个镜像可以理解为启动了一个新的内核,独立的端口号,即启动两个服务,可以用同一个端口号,因为他们不相关)  --name 设置名字   5acf0e8da90b 标识镜像的CONTAINER ID

Dockerfile详解:

注意:里面的路径都要用绝对路径,不能用相对路径。否则会报错(解决Unable to access jarfile)

CMD:启动容器后执行其命令,如果指定运行复制进去的文件(run.sh),要用绝对路径。不能用相对路径。

COPY和ADD:

都是把当前主机的文件复制进镜像中。

区别:COPY单纯的复制,ADD是会对需要复制文件进行解压操作。

如果想要add/copy,文件必须在Dockerfile同一个根目录下

docker容器的理解:

容器本身就是一个没有内核的centos文件系统,我们自己制作镜像后,把镜像放到容器中运行,

在进入到容器中,就会发现里面的目录结构和宿主系统的目录结构一模一样,这就证明了那一点。

如果要把自己的项目制作成一个镜像,就可以在制作镜像的时候,复制进镜像里面,如果需要运行,

两种方法,1.制作镜像的时候,写好指令,2.制作镜像,启动后,进入到镜像里面,启动项目。

后台方式运行容器:docker run -d 容器名

进入容器的命令:docker exec -t[it] 容器id /bin/sh

构建容器;docker build -f /root/workspace/project/Dockerfile -t myproject .

在使用docker容器时,有时候里边没有安装vim,可:apt-get update,这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
等更新完毕以后再敲命令:apt-get install vim命令即可。

 

启动容器的时候指定挂载目录:

docker run -d -p 8080:8080 -v /root/workspace/project/log:/usr/docker-demo/log --privileged=true docker-demo

Dockerfile文件:

FROM           java:8  #表示构建镜像的时候会去下载jdk8
MAINTAINER     meijun<1255738994@qq.com>
#  VOLUME 用这个做挂会出现各种问题,如不同步,还是在启动容器的时候用-v指定
#VOLUME         ["/root/workspace/project/log","/usr/docker-demo/log"]
COPY           docker-demo /usr/docker-demo

# 构建的容器是没有vi的,即要自己手动安装,在这里安装也会报错,说是没有权限
# 可以在容器启动之后,在容器里面安装
#RUN            apt-get update && apt-get install vim -y

# javaweb项目制作成镜像,需要连接外部数据库,自己测试时报错:
# 错误提示: timezone region not found
# 错误原因:docker 容器内时区不是 CST 导致
# 通过这两个设置下时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 当前容器开放的端口号
EXPOSE         8080

#ENTRYPOINT ["java","-jar","/docker-demo/docker-demo.jar"]

CMD            /usr/docker-demo/run.sh

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值