docker 命令总结

docker pull  获取镜像

docker build --tag imageName:v1  . 建立镜像

docker images  查看镜像

docker run  --name imageName  -d -p 8080:80 运行镜像    

docker ps  列出container

docker tag imageid name:tag   修改容器名字及tag

 

删除 正在运行的docker

docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop

docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
 
docker images grep none|awk '{print $3 }'|xargs docker rmi
 
docker rmi -f imageId
 
提交
docker commit -m "update file" -a "Docker Newbee" 0b2616b0e5a8 theme:v2
其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;-a 可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。
 

 启动容器,并挂在

#docker run -d -v /home/user/software/:/home/software/ -p 58080:8080 --name javaweb javaweb:0.1 /root/run.sh

-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。

-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了58080端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。

--name:表示容器名称,用一个有意义的名称命名即可。

-v:冒号指定的路径是Dockfile中VOLUME指定的目录

 

docker还提供了一种高级的用法。叫数据卷。
数据卷:“其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的”。感觉像是由一个容器定义的一个数据挂载信息。其他的容器启动可以直接挂载数据卷容器中定义的挂载信息。
eg: docker run -v /home/dock/Downloads:/usr/Downloads --name dataVol ubuntu64 /bin/bash
创建一个普通的容器。用--name给他指定了一个名(不指定的话会生成一个随机的名子)

再创建一个新的容器,来使用这个数据卷。
docker run -it --volumes-from dataVol ubuntu64 /bin/bash

 

 

Dockerfile 语法总结:

  FROM  baseimage

  RUN  执行命令

  ADD  添加文件

  COPY  拷贝文件

  EXPOSE  暴露端口

  WORKDIR  指定路径

  MAINTAINER  维护者

  ENV  设置环境变量

  ENTRYPOINT  容器入口

  USER  指定用户

  VOLUME  mount point   eg:  VOLUME ["/data1","/data2"]

 

eg1:  java 镜像 运行jar文件

FROM hub.c.163.com/library/java

COPY eurekaserver-0.0.1-SNAPSHOT.jar /usr/src/app.jar

ENTRYPOINT ["java","-jar","/usr/src/app.jar"]

  

eg2: mvn clean package -DskipTests=true docker:build

 

posted on 2017-10-18 23:58  Xiaox-xin  阅读(178)  评论(0编辑  收藏  举报

导航