您的位置:首页 > 运维架构 > Docker

Centos6.8 Docker简单入门实战

2017-11-06 14:25 471 查看

Docker简单入门实战

Docker简单入门实战
Docker 是什么

Docker 思想

Docker 应用场景

Docker核心技术
Docker镜像

Docker 容器

Docker仓库

Docker实战
拉取第一个镜像

制作自己的镜像

容器关闭后怎么启动

进入容器内部查看

宿主机上传文件到容器

保存对容器的修改

删除容器和镜像

重启容器

查看容器运行日志

设置Docker开机自启动

卸载Docker

修改war包

Docker 是什么?

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

Docker 思想

集装箱

标准化

运输方式

存储方式

API接口

隔离

Docker 应用场景

测试:又拿本地能跑起来搪塞我,mmp!(运行环境不一致导致的问题)

运维:系统好卡,哪个哥们写了死循环(运行环境多用户操作问题)

老板:双11来了,服务器扛不住了!(快速扩展,弹性伸缩)

Docker核心技术

build 构建 镜像

ship 运输 镜像

run 运行 镜像

Docker镜像

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

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


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

writableContainer释义
add ApacheImage
add emacsImage
DebianBase Image
Lxc,aufs/btrfsKernel
bootfsbootfs
想象这个表格是分层系统,只有顶层是可读可写,其他层都是只读的

Docker 容器

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

Docker仓库

hub.docker.com

https://c.163.com/hub#/m/home/ 网易蜂巢

可以自己搭建内网仓库

Docker实战

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

环境:centos6.9 64bit

检查内核版本,返回的值大于3.10即可。

uname -r


使用 sudo 或 root 权限的用户登入终端。

确保yum是最新的

yum update


添加 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

安装 Docker

$ yum install -y docker-engine


启动 Docker

$ service docker  start


查看Docker版本

$ docker version


拉取第一个镜像

查看本机docker镜像

$ docker images


打开网易蜂巢获取Holle-world 镜像

粘贴执行pull 镜像操作

$ docker pull hub.c.163.com/library/hello-world:latest


查看镜像

$ docker images


运行hollo-wordld镜像

$ docker run hub.c.163.com/library/hello-world


制作自己的镜像

下载tomcat 镜像

$ docker pull hub.c.163.com/library/tomcat:latest


上传需要部署的war包到自定义的工作目录下

在上个步骤创建的通过工作目录下创建Dockerfile文件

war包和Dockerfile文件放在同一目录下

编辑Dockerfile文件

$ vi Dockerfile


from hub.c.163.com/library/tomcat
MAINTAINER luming 1030769815@qq.com
COPY jpress.war /usr/local/tomcat/webapps/


通过docker build命令创建镜像

$ docker build -t jpress:latest .


查看镜像,复制镜像ID

$ docker images


运行自己的镜像

$  docker run -d -p 88:8080 镜像ID


-d:表示在后台运行该镜像(按ctrl+C不会终止该程序)

-p:小写p表示指定本机的32771端口对应容器中的8080端口

查看正在运行的容器

$ docker ps


浏览器中测试访问

你的宿主机ip:88

容器关闭后,怎么启动

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

docker ps -a 看到关闭的容器
docker start your_container_name
docker attach your_container_name


进入容器内部查看

查看容器ID

$ docker ps


2.进入容器内部

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


3.退出容器

$ exit


宿主机上传文件到容器

查看容器

$ docker ps


tar所要发送root下的文件到容器中

$ tar -cv root/jpress.war | docker exec -i 容器id或者name  tar x -C /usr/local/tomcat/webapps


/usr/src/ghost/content/themes

进入容器中验证是否传送成功

$ docker exec -it 镜像ID /bin/bash
$ cd /usr/local/tomcat/webapps
$ ls


退出容器

exit


保存对容器的修改

运行docker commit,可以查看该命令的参数列表。

$ docker commit --help


2.查看容器,获取ID

$ docker ps


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

3.提交容器到镜像中去

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


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

删除容器和镜像

停止容器

$ docker stop 容器名或容器ID


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

2. 删除容器

$ docker rm 容器名


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

3.删除镜像

$ docker rmi -f 镜像ID或name


-f强制删除,连同依赖

重启容器

$ docker restart


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

查看容器运行日志

$ docker logs 容器名或容器id


设置Docker开机自启动

$ sudo chkconfig docker on


卸载Docker

列出安装过的包

$ yum list installed | grep docker


删除安装包

$ sudo yum -y remove docker-engine.x86_64


删除镜像/容器等

$ rm -rf /var/lib/docker


修改war包

新建临时文件夹

$ mkdir tmp


3.进入文件目录

$ cd /tmp


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

$ cp /root/jpress.war .


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

$ jar xvf jpress.war


4.修改你要改的文件(我新增了一个db.properties)

5.重新装入.war 文件的内容。

$ jar uvf jpress.war WEB-INF/classe/db.properties
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: