docker 技术全面整理
docker 和 vm 虚拟机技术比较像,但又有一些区别。
vm 像真机一样有 BIOS ,有硬盘,有网卡,声卡,可以安装操作系统, win7 win10 macOS ubuntu centOS,有好用方便的快照功能,隔离性较强,vm 蹦溃不影响宿主,软件发布时间长,支持众多宿主操作系统,XP WIN7 centOS 6。
vm 缺点也是上面的问题,需要自行安装 操作系统,软件,启动慢,大概需要1分钟,高配电脑,也需要有半分钟。
docker 可以很方便的拉取 image 运行,省去了自行安装操作系统和软件的过程。还可以很方便的进行配置或删除。随便安装ubuntu 14 16 18 仅需要下载 image 就行了。启动快速,秒开。
docker 缺点是不支持 windows mac OS 这种非 linux 的操作系统,软件这几年刚有,仅支持 CentOS 6.8 7 或更高版本,kernel 要求 3.1 以上,仅支持 win10,还是用虚拟机实现。
基本使用:
1, 先去 https://www.docker.com/ 注册一个帐户 因为有的 image 需要登录用户才能拉取
2, 安装 docker 在 ubuntu 18
sudo apt-get install docker.io
sudo docker info
3, 添加 docker 用户,这样以后就不必每次都打 sudo
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用
4,启用systemctl
sudo systemctl enable docker
sudo systemctl start docker
5, 拉取 nginx 并运行
docker pull nginx
docker run --name "nginx" -p : -d nginx
#传入 html 路径 交互模式 退出自动删除容器
docker run --rm -it -p 8000:80 -v $PWD/html:/usr/share/nginx/html nginx
6, 修改docker 保存的位置, 用软链比较简单。
sudo mv /var/lib/docker /opt/data/
sudo ln -s /opt/data/docker/ /var/lib/docker
7, 其它的命令
搜索 image
docker search nginx
查看容器运行状态
docker ps -a
查看所有镜像
sudo docker images
仅显示容器ID
sudo docker ps -aq
停止所有容器
sudo docker stop $(sudo docker ps -aq)
删除所有容器
sudo docker rm $(sudo docker ps -aq)
进入容器
sudo docker exec -it f66627b76918 /bin/bash
复制容器配置文件
docker cp f66627b76918:/etc/nginx/ .
run 详细参数
https://docs.docker.com/engine/reference/commandline/run/#options
--detach , -d Run container in background and print container ID
--rm Automatically remove the container when it exits
--interactive , -i Keep STDIN open even if not attached
--tty , -t Allocate a pseudo-TTY
如何打包制作镜像 image
Dockerfile
ENV PORT 8000 #设置变量,可以通过 -e 指定
RUN apt-get update && apt-get install -y ssh && rm -rf /var/lib/apt/lists/* # 执行普通的命令
RUN sed -i 's/# StrictHostKeyChecking ask/StrictHostKeyChecking no/' /etc/ssh/ssh_config #通过 sed 流文本编译器来修改文件,经常使用
COPY run.sh /run.sh #复制文件到镜像中 另一个常用的是 ADD 可以从网络读取下载到镜像
EXPOSE 80 #声明发布的端口 这里是 web 的 80
CMD ["/run.sh"] #自动启动时执行的自定义命令 -d 的时候
开始构建
docker build -t ubuntu-nginx .
docker 技术全面整理的更多相关文章
- .NET Web开发技术简单整理
在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...
- 利用Docker技术实现UDP广播效果(网络编程python版)
docker的安装见官方文档 我使用的系统为Ubuntu16.04 Ubuntu系统安装docker文档地址:https://docs.docker.com/engine/installation/l ...
- Docker - 技术栈
与传统的方式类似,构建及运行Docker容器与在一台虚拟机上构建和运行程序的方式是相似的,只是使用了一套新的工具以及技术. 与虚拟机不同的是,Docker容器将宿主机与应用程序或者服务隔离,从而提高了 ...
- 赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】
最近对docker这个比较感兴趣,找一个比较完整的书籍看看,在z.cn上找到了电子书,jd dangdang看来要加油啊 Docker技术入门与实战 [Kindle电子书] ~ 杨保华 戴王剑 曹亚仑 ...
- 转载:.NET Web开发技术简单整理
在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...
- Docker技术学习
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1598249 貌似Doc ...
- Docker技术浅谈:私有化部署的优势以及在顶象内部的应用实践
顶象全景式业务安全风控体系基于新一代风控体系构建,并采用Docker技术进行私有云和公有云部署.本文主要和大家分享下Docker容器技术和顶象风控系统私有化部署的优势以及Docker容器技术在顶象内部 ...
- Docker技术知识点总结
Docker技术知识点总结 本文宿主机环境Centos7.4Docker version 18.09.2, build 6247962采用国内 Daocloud 加速器---------------- ...
- Docker技术应用场景(转载)
场景一:节省项目环境部署时间 1.单项目打包 每次部署项目到测试.生产等环境,都要部署一大堆依赖的软件.工具,而且部署期间出现问题几率很大,不经意就花费了很长时间. Docker主要理念就是环境打包部 ...
随机推荐
- [LC] 106. Construct Binary Tree from Inorder and Postorder Traversal
Given inorder and postorder traversal of a tree, construct the binary tree. Note:You may assume that ...
- [Linux] Windows 下通过SecureCRT 访问 Linux
不愿意装双系统的,可以借助虚拟机(Vmware, Virtual PC等) 安装linux 进行使用. 至于如何使用虚拟机安装Linux 这部分,很简单: 下载好需要安装的Linux ISO 镜像文件 ...
- springboot学习笔记:4.logback日志配置
springboot中日志组件推荐使用logback: 由于springboot内置了logback,所以可以直接在application.properties中配置:如果要功能丰富些,则配置下log ...
- python学习笔记(3)数据类型-列表list
序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见的是列表和元组. 序列 ...
- Java中的注意点
1.源文件以.java结束,源文件的基本组成部分是类(class) 2.每个源文件只能有一个public类,源文件名必须和该类的类名一致 3.每个Java程序的执行入口都是main()方法,固定写法为 ...
- ServletContextListener 监听器
Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码.做一些业务逻辑判断等.其工作原理是,只要你在web.xml文件配置好要 ...
- Jeninks远程部署war包
主体上看别人的脚本,然后和开发协商,做出符合自己的生产脚本................................ 脚本一: #!/bin/bash DATE=`date +%F-%H-%M` ...
- “冰桶挑战”之外:微软科技助力ALS患者
编者按:"直到ALS出现治疗方法,科技就是我的解药."ALS患者,前美国橄榄球联盟(NFL)球员Steve Gleason如是说.最近,一支微软首届黑客马拉松(Hackathon) ...
- oracle存储过程随笔
有时间要把最近总结的存储过程的问题总结一下,先占坑: create or replace procedure test_proc2 as cursor cur is select YWR,YWRZJH ...
- 利用Load命令将本地文本里面的数据导入到MySQL数据库
摘要:在使用MySQL是我们可能会遇到要向我们的表中插入大量的数据如果都使用以下的语句在命令行输入有点不太切实际,幸好MySQL为我们提供了LOAD命令可以批量的从本地文件向MySQL表中导入数据! ...