docker的一些使用小结
来源:互联网 发布:顶级域名表示政府部门 编辑:程序博客网 时间:2024/06/08 19:39
因为分析的项目中使用到了docker,做了一些使用方面的小结
搜索镜像:
docker search 镜像名字
下载镜像:
docker pulldocker pull learn/tutorial
要写完整镜像名字
在 docker中运行 hello world
docker容器可以理解为在沙盒中运行的进程。这个沙盒包含了该进程运行所必须的资源。
但这个沙盒默认不会运行任何程序。
你需要在沙盒中运行一个进程来启动某一个容器,这个进程是该容器的唯一进程,所以
当该进程结束时,容器也会完全的停止。
docker run 有两个参数 一个是镜像名,一个是在镜像中运行的命令
docker run learn/tutorial echo "hello world"
- -
在容器中安装一个简单的程序(ping)
比如 apt-get install -y ping
apt-get 命令执行完毕之后,容器就会停止,但对容器的改动不会丢失。
注意: 在 执行 apt-get命令的时候,要带上 -y参数,如果不指定 -y参数的话, apt-get命令会
进入交互模式,需要用户输入命令来进行确认,但在 docker环境中是无法响应这种交互的。
命令:
docker run learn/tutorial apt-get install -y ping
保存对容器的修改。 commint。
使用 docker ps -l命令获得安装完ping命令之后容器的id。然后把这个镜像保存为 learn/ping
执行 docker commit,可以查看该命令的参数列表
需要指定要提交保存容器的ID (这个id是 docker ps -l获取的)
这个id类似 git的版本号
执行命令:
docker commit 698 learn/ping
执行完后会返回 新版本镜像的ID号
运行新的镜像
想运行这个新的镜像就要使用新的镜像名了。
查询运作中的镜像
docker ps -a 查看所有的docker ps -l 查看最近的容器
使用 docker inspect命令可以更详细的查看一个容器的信息
根据 ID 查看
执行命令:
docker inspect ID
发布自己的镜像
查看所有安装过的镜像
docker images
将镜像发布到官方网站
docker push
这个镜像只能发布到自己的空间下面
命令: docker push learn/ping
从容器中复制文件到主机和把文件从主机复制到容器
docker cp CONTAINER ID:文件路径 保存路径docker cp CONTAINER ID 容器名:文件路径
复制进去
docker cp /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 bbd4312c781b:/usr/lib64
http://blog.csdn.net/niu_hao/article/details/69546208
要将镜像启动才可以,出来容器,然后查看容器CONTAINER ID
将文件传到容器中
docker容器目录挂在
http://blog.csdn.net/magerguo/article/details/72514813
docker run -ti -v /test:/soft centos /bin/bash
这个 /test是主机目录,如果存在就要删除, 冒号后面的是 soft是 docker容器中的目录
删除 name Tag 都会None的容器
这个也是参考的网上的,地址忘了。。
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stopdocker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rmdocker images|grep none|awk '{print $3 }'|xargs docker rmi
如何查看容器的名字:
docker ps 查看 在最后一个属性就是 name
如何使容器后台运行
使用的-d 参数
使用 docker -ti 容器 /bin/bash
是交互进入容器
保存对容器的修改,因为不然每次执行完就恢复原来的镜像的状态了。
如何进入正在运行的容器呢?
docker ps
获取到正在运行的
进入
docker attach Names
例如
docker attach quizzical_torvalds
就可以进入了。
如何进入容器退出但是后台运行呢?
ctrl+p+q
按住就可以退出并且 容器还会继续运行,如果 exit就会关闭退出容器,!!!且之前的操作都恢复到初始了。也就都没了。
如何保存对容器的操作呢?
获取 commit id
docker ps -l
获取要保存的容器的commitID
然后保存
docker commit commitID 保存的镜像名字
dockerfile文件编写,也就是构建docker的文件
http://blog.csdn.net/yuan_xw/article/details/77744272
一个简单事例
1. # this is jdk1.8 + tomcat8.5 Dockerfile 2. # version 1.0 3. # author:yuan_xw 4. 5. # 指定基础image为该image的最后修改的版本。语法:FROM <image>:<tag> 6. FROM centos 7. 8. # MAINTAINER(用来指定镜像创建者信息)。语法:MAINTAINER <name> 9. MAINTAINER yuan_xw 10. 11. # RUN 构建指令,RUN可以运行任何被基础image支持的命令。如基础image选择了centos,那么软件管理部分只能使用centos的命令。 12. RUN yum install -y wget 13. RUN wget -P /usr/local/software --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie;" http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz 14. 15. # RUN 构建指令,解压jdk-8u144-linux-x64.tar.gz文件 16. RUN tar -zxvf /usr/local/software/jdk-8u144-linux-x64.tar.gz -C /usr/local/software 17. 18. # ENV构建指令,在image中设置一个环境变量。语法:ENV <key> <value> 19. ENV JAVA_HOME /usr/local/software/jdk1.8.0_144 20. ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 21. ENV PATH $JAVA_HOME/bin:$PATH 22. 23. # 安装 tomcat8.5 24. RUN wget -P /usr/local/software http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz 25. RUN tar -zxvf /usr/local/software/apache-tomcat-8.5.20.tar.gz -C /usr/local/software 26. 27. # EXPOSE(指定容器需要映射到宿主机器的端口)设置指令,该指令会将容器中的端口映射成宿主机器中的某个端口。当你需要访问容器的时候,可以不是用容器的IP地址而是使用宿主机器的IP地址和映射后的端口。要完成整个操作需要两个步骤,首先在Dockerfile使用EXPOSE设置需要映射的容器端口,然后在运行容器的时候指定-p选项加上EXPOSE设置的端口,这样EXPOSE设置的端口号会被随机映射成宿主机器中的一个端口号。也可以指定需要映射到宿主机器的那个端口,这时要确保宿主机器上的端口号没有被使用。EXPOSE指令可以一次设置多个端口号,相应的运行容器的时候,可以配套的多次使用-p选项。 28. EXPOSE 8080 29. 30. #设置tomcat8.5 启动 31. # ENTRYPOINT(设置container启动时执行的操作) 32. # 在Docker daemon模式下,无论你是使用ENTRYPOINT,还是CMD,最后的命令,一定要是当前进程需要一直运行的,才能够防容器退出。 33. ENTRYPOINT /usr/local/software/apache-tomcat-8.5.20/bin/startup.sh && tail -100f /usr/local/software/apache-tomcat-8.5.20/logs/catalina.out
其实很简单!!!
开始的 FROM就是定义的这个镜像的基础镜像。
之后的RUN可以执行的命令都是这个镜像支持才能使用的。
之后就可以执行一些命令比如我想构建一个 tomcat &java的环境就可以使用
一路配置RUN就可以了。
hia可以设置 ssh远程登陆密码用户等
还可以直接配置环境变量和 容器开启端口 EXPOSE 22 就是这个开启 22端口
开启 tomcat端口同理。
之前实习遇到的那个就是打包然后构建,然后将这个docker容器 tomcat 8080端口映射到 主机服务器的 80端口
还可以设置 构建完成后 执行的一些命令
就是使用 ENTRYPOINT
后面是执行的命令
# 设置Tomcat7初始化运行,SSH终端服务器作为后台运行ENTRYPOINT service tomcat7 start && /usr/sbin/sshd -D
dockerfile脚本写好了 构建镜像
docker build -t 标签 .
注意 有点!!
运行 docker的时候 -d 就在后台运行了。 -p来指定端口映射
可以将镜像上传 要注册账号: 登陆也是 docker login
这个只是 dockerfile的简单用法
只是对 docker的一些简单常用的方法或者问题做了下总结。
- docker的一些使用小结
- docker使用的一些建议
- docker使用的一些建议
- docker的一些使用命令
- docker初使用小结
- Docker使用小结
- Javascript一些使用的小结
- [docker]docker命令docker run的小结
- 一些docker使用的相关记录
- 安装docker以及一些简单的使用
- docker中git和gerrit的使用小结
- canvas的一些有用的使用小结
- Ant“蚂蚁"的一些使用小结
- FIELD-SYMBOLS的一些简单使用小结
- 最近使用WEUI的一些小结
- docker的一些命令
- Docker的一些操作
- docker的一些内容
- dom4j解析xml文件 或者xml格式字符串
- Verilog 语法入门知识
- 如何利用U盘制作启动盘安装系统
- hbase的整体了解
- spring-mvc限制前端传递list参数的长度为256
- docker的一些使用小结
- 神经网络与深度学习第四周-Deep Neural Network
- 小程序问题:未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译。
- C语言指针变量的简单使用
- 多态
- lintcode---最大子数组差
- pymysql cursor传参报错TypeError: %d format: a number is required, not str
- Spring全家桶
- springboot+thymeleaf+i18n