Docker简单入门

Docker 是什么?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker 思想

  • 集装箱
  • 标准化
    • 运输方式
    • 存储方式
    • API接口
  • 隔离

Docker 应用场景

  • 测试:又拿本地能跑起来搪塞我,mmp!(运行环境不一致导致的问题)
  • 运维:系统好卡,哪个哥们写了死循环(运行环境多用户操作问题)
  • 老板:双11来了,服务器扛不住了!(快速扩展,弹性伸缩)

Docker核心技术

build 构建 镜像
ship 运输 镜像
run 运行 镜像

Docker镜像

Docker镜像就是一系列的文件(联合文件)

联合文件就是在一个目录下看到多个文件夹下面的东西
 
 
  • 1

通过这种方式就可以达到分层的目的

writableContainer释义
add ApacheImage
add emacsImage
DebianBase Image
Lxc,aufs/btrfsKernel
bootfsbootfs

想象这个表格是分层系统,只有顶层是可读可写,其他层都是只读的

Docker 容器

Doker 容器本质就是一个进程,可以想象成虚拟机

Docker仓库

Docker实战

只有自己动手才能更好的理解,撸起袖子一起来

环境:centos6.9 64bit

  1. 检查内核版本,返回的值大于3.10即可。
 uname -r
 
 
  • 1
  1. 使用 sudo 或 root 权限的用户登入终端。
  2. 确保yum是最新的
yum update
 
 
  • 1
  1. 添加 yum 仓库

$ tee /etc/yum.repos.d/docker.repo <<-‘EOF’ [dockerrepo]
name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF

  1. 安装 Docker
$ yum install -y docker-engine

 
 
  • 1
  • 2
  1. 启动 Docker
$ service docker  start
 
 
  • 1
  1. 查看Docker版本
$ docker version
 
 
  • 1

拉取第一个镜像

  1. 查看本机docker镜像
$ docker images
 
 
  • 1
  1. 打开网易蜂巢获取Holle-world 镜像
  2. 粘贴执行pull 镜像操作
$ docker pull hub.c.163.com/library/hello-world:latest
 
 
  • 1
  1. 查看镜像
$ docker images
 
 
  • 1
  1. 运行hollo-wordld镜像
$ docker run hub.c.163.com/library/hello-world
 
 
  • 1

制作自己的镜像

  1. 下载tomcat 镜像
$ docker pull hub.c.163.com/library/tomcat:latest
 
 
  • 1
  1. 上传需要部署的war包到自定义的工作目录下
  2. 在上个步骤创建的通过工作目录下创建Dockerfile文件
  3. war包和Dockerfile文件放在同一目录下
  4. 编辑Dockerfile文件
$ vi Dockerfile
 
 
  • 1
from hub.c.163.com/library/tomcat
MAINTAINER luming 1030769815@qq.com
COPY jpress.war /usr/local/tomcat/webapps/
 
 
  • 1
  • 2
  • 3
  1. 通过docker build命令创建镜像
$ docker build -t jpress:latest .
 
 
  • 1
  1. 查看镜像,复制镜像ID
$ docker images
 
 
  • 1
  1. 运行自己的镜像
$  docker run -d -p 88:8080 镜像ID
 
 
  • 1

-d:表示在后台运行该镜像(按ctrl+C不会终止该程序)
-p:小写p表示指定本机的32771端口对应容器中的8080端口

  1. 查看正在运行的容器
$ docker ps
 
 
  • 1
  1. 浏览器中测试访问
你的宿主机ip:88

容器关闭后,怎么启动

容器关闭后重新进去,数据还在原处吧,比如通过

docker ps -a 看到关闭的容器
docker start your_container_name
docker attach your_container_name
 
 
  • 1
  • 2
  • 3

进入容器内部查看

  1. 查看容器ID
$ docker ps
 
 
  • 1

2.进入容器内部

$ docker exec -it 镜像ID /bin/bash
 
 
  • 1

3.退出容器

$ exit
 
 
  • 1

宿主机上传文件到容器

  1. 查看容器
$ docker ps
 
 
  • 1
  1. tar所要发送root下的文件到容器中
$ tar -cv root/jpress.war | docker exec -i 容器id或者name  tar x -C /usr/local/tomcat/webapps
 
 
  • 1

/usr/src/ghost/content/themes

  1. 进入容器中验证是否传送成功
$ docker exec -it 镜像ID /bin/bash
$ cd /usr/local/tomcat/webapps
$ ls
 
 
  • 1
  • 2
  • 3
  1. 退出容器
exit
 
 
  • 1

保存对容器的修改

  1. 运行docker commit,可以查看该命令的参数列表。
$ docker commit --help
 
 
  • 1

2.查看容器,获取ID

$ docker ps
 
 
  • 1

无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。(译者按:非常类似git里面的版

3.提交容器到镜像中去

$ docker commit 容器ID 自定义镜像名称
 
 
  • 1

执行完docker commit命令之后,会返回新版本镜像的id号。


删除容器和镜像

  1. 停止容器
$ docker stop 容器名或容器ID
 
 
  • 1

强行停止一个容器的话,最好用docker kill命令
2. 删除容器

$ docker rm 容器名
 
 
  • 1

不能删除一个正在运行的容器,必须先docker stop或者docker kill后我们才能删除

3.删除镜像

$ docker rmi -f 镜像ID或name
 
 
  • 1

-f强制删除,连同依赖


重启容器

$ docker restart
 
 
  • 1

Usage: docker restart [OPTIONS] CONTAINER [CONTAINER…]Restart a running container

查看容器运行日志

$ docker logs 容器名或容器id
 
 
  • 1

设置Docker开机自启动

$ sudo chkconfig docker on
 
 
  • 1

卸载Docker

  1. 列出安装过的包
$ yum list installed | grep docker
 
 
  • 1
  1. 删除安装包
$ sudo yum -y remove docker-engine.x86_64
 
 
  • 1
  1. 删除镜像/容器等
$ rm -rf /var/lib/docker
 
 
  • 1

修改war包

  1. 新建临时文件夹
$ mkdir tmp
 
 
  • 1

3.进入文件目录

$ cd /tmp
 
 
  • 1

2.将war包拷贝到当前文件夹中

$ cp /root/jpress.war .
 
 
  • 1

3.提取 .war 文件的内容。

$ jar xvf jpress.war
 
 
  • 1

4.修改你要改的文件(我新增了一个db.properties)
5.重新装入.war 文件的内容。

$ jar uvf jpress.war WEB-INF/classe/db.properties
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值