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的一点记录的更多相关文章

  1. 学习docker 部署nginx记录

    docker pull nginx $ docker pull nginx $ docker run --name nginx-test -p 8081:80 -d nginx docker conf ...

  2. 学习nginx的一点记录

    一.nginx定义 Nginx是一款轻量级的.高性能的,具备HTTP.反向代理.负载均衡的web服务器,同时还提供IMAP/POP3/SMTP服务,其特点是占用内存少,并发能力强. 二.nginx基本 ...

  3. 从零开始学习 Docker

      这篇文章是我学习 Docker 的记录,大部分内容摘抄自 <<Docker - 从入门到实践>> 一书,并非本人原创.学习过程中整理成适合我自己的笔记,其中也包含了我自己的 ...

  4. ubuntu 下安装docker 踩坑记录

    ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step ...

  5. phpunit测试学习 1:一点简单的扼要有用的东西的总结 一点入门认识

    16:45 2015/12/8phpunit测试学习 1:一点简单的扼要有用的东西的总结  一点入门认识 具体的入门安装和入门实践请参照文中的推荐博客或网上其他博客推荐博客,我感觉这几篇博客写得很不错 ...

  6. Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)

    Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...

  7. Java 需要记得、了解的关键词 (Java 学习中的小记录)

    Java 需要记得.了解的关键词 (Java 学习中的小记录)     作者:王可利(Star·星星) 总结:本次随笔,仅且拿来平时翻阅记忆用

  8. 学习javascript 的一点感想

    原文:学习javascript 的一点感想 //动态性是指,在一个Javascript对象中,要为一个属性赋值,我们不必事先创建一个字段,只需要在使用的时候做赋值操作即可,如下例:var obj=ne ...

  9. 关于Java8:StreamAPI的一点记录

    关于 Stream ,Functional Interface 的一点记录 stream对于集合操作的便捷度提升: import java.util.ArrayList; import java.ut ...

随机推荐

  1. redis:安装及基础知识(一)

    Redis官网:https://redis.io/ Redis中文网:http://www.redis.cn/ Redis 是一个开源的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. ...

  2. python爬取优美图库海量图片,附加代码,一键爬取

    优美高清图片为大家提供高清美女套图赏析,非高清不录入,大家的网速要给力. 今天教大家爬取优美图库网站中高质量的图片!! 简单易上手哦~ 使用工具: Python 3.6 pycharm 相关环境: r ...

  3. 取代 Python 多进程!伯克利开源分布式框架 Ray

    Ray 由伯克利开源,是一个用于并行计算和分布式 Python 开发的开源项目.本文将介绍如何使用 Ray 轻松构建可从笔记本电脑扩展到大型集群的应用程序. 并行和分布式计算是现代应用程序的主要内容. ...

  4. pytorch 中交叉熵损失实现方法

  5. sudo: 在加载插件“sudoers_policy”时在 /etc/sudo.conf 第 0 行出错 sudo: /usr/lib/sudo/sudoers.so 必须只对其所有者可写 sudo: 致命错误,无法加载插件

    解决办法:  su root chmod 644 /usr/lib/sudo/sudoers.so chown -R root /usr/lib/sudo 千万不要给 /usr 赋全部权限!!!   ...

  6. SpringBoot项目集成Redis

    一.在pom文件中添加依赖 <!-- 集成redis --> <dependency> <groupId>org.springframework.boot</ ...

  7. 闲聊http1.1的6个方法

    GET :获取资源GET 方法用来请求访问已被 URI 识别的资源.指定的资源经服务器端解析后返回响应内容. POST :传输实体主体POST 方法用来传输实体的主体.虽然用 GET 方法也可以传输实 ...

  8. Springboot以Jetty为容器实现http重定向到https

    1 简介 之前讲解的Springboot整合https用的是tomcat作为容器,tomcat也是一个流行多年的老牌Java容器了.但针对不同的场景,还是会有不同的选择,如Jetty.Jetty是架构 ...

  9. css-position之fixed vs sticky

    css-position之fixed  vs sticky fixed(固定定位) 元素相对于浏览器窗口是固定的,即使是窗口滚动,元素也是固定的 sticky(粘性定位) 基于用户滚定动来进行定位的, ...

  10. 【Linux网络基础】TCP/IP协议簇的详细介绍(三次握手四次断开,11种状态)

    一.TCP/IP协议簇(DoD参考模型) 用于简化OSI层次,以及相关的标准. 传输控制协议(tcp/ip)簇是相关国防部DoD所创建的,主要用来确保数据的完整性以及在毁灭性战争中维持通信 是由一组不 ...