学习docker的一点记录
0x00 docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
0x01 在ubuntu上安装docker
第一步:
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
第二步:安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
第三步:写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
第四步:更新并安装
sudo apt-get -y update
sudo apt-get -y install docker-ce
0x02 docker的启动、重启和关闭
启动docker:systemctl start docker
进程重启:sudo systemctl daemon-reload
重启docker服务:systemctl restart docker
重启docker服务:sudo service docker restart
关闭docker:service docker stop
关闭docker:systemctl stop docker
0x03 创建docker容器
创建交互式的docker容器
docker run -it 镜像名 /bin/bash
-t:在新容器内指定一个伪终端或终端。
-i:允许你对容器内的输入进行交互。
注:进入交互式容器后,使用exit或ctrl+D来退出容器
创建后台运行,不进入交互界面的容器
docker run -d 镜像名 /bin/bash
-d:指定容器的运行模式。(加了-d参数默认不会进入容器,也就是后台运行)
除了以上3个参数,还有以下参数比较常用:
-P(大写):将容器内部使用的网络端口映射到我们使用的主机上(随机映射)。
-p:将容器内部端口绑定到指定的主机端口。(-p 想要指定的端口:想要更改的端口)
--name:命名容器
0x04 操作docker容器的部分命令
docker ps(查看是否有容器在运行)
docker ps -a(查看所有的容器)
docker ps -l(查看最后一次创建的容器)
docker start <容器ID>(启动容器)
docker stop <容器ID>(停止容器)
docker attach <容器ID>(对于加了-d参数的容器,可以使用该命令进入该容器)
docker exec <参数> <容器ID> /bin/bash(跟attach的功能差不多,不过建议使用该命令,因为该命令退出容器终端,不会导致容器的停止)
docker export <容器ID> > ubuntu.tar(导出容器的快照到本地文件Ubuntu.tar)
cat docker/ubuntu.tar | docker import - test/ubuntu:v1(快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1)
docker rm -f <容器ID>(删除对应容器)
docker rm 名字(删除容器)
注:删除容器时,容器必须是处于停止状态。
docker container prune 清理掉所有处于终止状态的容器
docker port <容器ID>或名字 查看容器端口的映射情况
docker top <容器ID>或名字 查看容器内部运行的进程
docker inspect 查看docker的底层信息。会返回一个json文件尽量docker容器的配置和状态信息
docker images(列出本地主机上的镜像)
docker search(想要的搜索的镜像)
docker pull 镜像名(下载镜像)
docker rmi 镜像名(删除相应的镜像)
docker tag <容器ID> 新的标签名(为镜像添加一个新的标签)
docker network create -d bridge 网络名 新建网络(-d后面的是网络的类型,网络名则是新建的网络的名字)
docker cp 要拷贝文件的目录 容器ID:拷贝的文件要放入的具体目录(将文件拷贝进容器)
0x05 dockerfile
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
创建镜像:docker build -t 镜像名:镜像描述 .
注:这里最后的点是指当前目录的dockerfile文件
docker搭建lamp环境很方便。
docker search lamp
docker pull tutum/lamp
注:这里是用的是tutum/lamp的镜像。
学习docker的一点记录的更多相关文章
- 学习docker 部署nginx记录
docker pull nginx $ docker pull nginx $ docker run --name nginx-test -p 8081:80 -d nginx docker conf ...
- 学习nginx的一点记录
一.nginx定义 Nginx是一款轻量级的.高性能的,具备HTTP.反向代理.负载均衡的web服务器,同时还提供IMAP/POP3/SMTP服务,其特点是占用内存少,并发能力强. 二.nginx基本 ...
- 从零开始学习 Docker
这篇文章是我学习 Docker 的记录,大部分内容摘抄自 <<Docker - 从入门到实践>> 一书,并非本人原创.学习过程中整理成适合我自己的笔记,其中也包含了我自己的 ...
- ubuntu 下安装docker 踩坑记录
ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step ...
- phpunit测试学习 1:一点简单的扼要有用的东西的总结 一点入门认识
16:45 2015/12/8phpunit测试学习 1:一点简单的扼要有用的东西的总结 一点入门认识 具体的入门安装和入门实践请参照文中的推荐博客或网上其他博客推荐博客,我感觉这几篇博客写得很不错 ...
- Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)
Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...
- Java 需要记得、了解的关键词 (Java 学习中的小记录)
Java 需要记得.了解的关键词 (Java 学习中的小记录) 作者:王可利(Star·星星) 总结:本次随笔,仅且拿来平时翻阅记忆用
- 学习javascript 的一点感想
原文:学习javascript 的一点感想 //动态性是指,在一个Javascript对象中,要为一个属性赋值,我们不必事先创建一个字段,只需要在使用的时候做赋值操作即可,如下例:var obj=ne ...
- 关于Java8:StreamAPI的一点记录
关于 Stream ,Functional Interface 的一点记录 stream对于集合操作的便捷度提升: import java.util.ArrayList; import java.ut ...
随机推荐
- 利用 tee 命令调试shell脚本中的管道
在编写shell脚本时,调试是个比较麻烦的事,特别是涉及到多层管道命令的时候,会产生多个中间结果,tee命令的作用是从标准输入中读取数据写入标准输出或文件中,利用它可以从管道中读取中间结果并写入本地临 ...
- 对JavaScript中的this的理解
什么是this: 解析器(就是浏览器)在调用函数时,每次都会向函数内部传递两个隐含的参数: 这两个隐含参数其中一个就是this(还有一个是arguments,用来接收函数的实参),this指向的是一个 ...
- 蒲公英 · JELLY技术周刊 Vol.03
蒲公英 · JELLY技术周刊 Vol.03 「蒲公英」期刊全新升级--JELLY技术周刊!深度挖掘业界热点动态,来自团队大咖的专业点评,带你深入了解团队研究的技术方向. 登高远眺 天高地迥,觉宇宙之 ...
- 10w+QPS 的 Redis 真的只是因为单线程和内存?360° 深入底层设计为你揭开 Redis 神秘面纱!
原文链接:10w+QPS 的 Redis 真的只是因为单线程和内存?360° 深入底层设计为你揭开 Redis 神秘面纱! 你以为 Redis 这么快仅仅因为单线程和基于内存? 那么你想得太少了,我个 ...
- GitHub 如何忽略文件或者文件夹
在我们开发项目的时候,往往会产生一些不必要的文件,我们会选择忽略他们,不提交到版本控制中,那我们该如何做呢? 步骤一:在项目根目录下,右键,git bash,在弹出的命令行输入框中输入命令:touch ...
- 宝塔利用git+ webhooks 实现git更新远程同步Linux服务器
参考: https://blog.csdn.net/alipea/article/details/83858177 https://www.bt.cn/bbs/thread-5348-1-1.html ...
- MySQL join的7种理论及SQL写法
转载于 https://www.cnblogs.com/dinglinyong/p/6656315.html 建表 在这里呢我们先来建立两张有外键关联的张表. CREATE DATABASE d ...
- 反向代理负载均衡之haproxy
在上篇安装的nginx的机器环境上将nginx停掉 /usr/local/nginx/sbin/nginx -s stop 在linux-node2上编译安装haproxy作为反向代理服务器 [roo ...
- phper:敢问路在何方
很多php程序员存在未来发展方面的困扰,介于各方面的因素,phper 比其他程序员更容易遇到上升天花板. 一方面,一般只有初创企业为了快速实现产品上市以及极容易招到 phper 才使用 php 来实现 ...
- Libra教程之:Libra协议的关键概念
文章目录 Libra协议 交易和状态 交易详解 账本状态详解 版本数据库 账户 账户地址 Proof 验证节点 存储 Libra协议 Libra协议是Libra区块链的基础,本文主要讲解Libra协议 ...