一。docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,
然后发布到任何流行的 Linux 机器上
一个完整的Docker有以下几个部分组成:
DockerClient客户端
Docker Daemon守护进程
Docker Image镜像
Docker Container容器[2]
Docker Registry 仓库:分 公有(Docker Hub)、私有
二。docker安装
》》 安装 yum -y install docker
》》启动 systemctl start docker
三。docker常用命令
1》列表显示所有的docker命令
docker --help
2》 常用命令解释
docker search镜像名称 (比如 centos,ubutu,nginx等) 搜索远程仓库中的镜像
docker images 查看本地所有镜像
docker pull 镜像名称 下载远程仓库的镜像
docker run [可选参数] 镜像名称 【进入仓库后执行命令】
运行某个镜像 运行后的镜像就是容器 就是进程的容器
--name 名称 指定容器名称 比如 docker run --name mycentos centos 表示运行一个为mycentos的centos仓库
-t 表示打开一个伪中断 其实centos仓库就是一个精简的centos系统
-i 表示持续打开输入流 用户可以输入命令 比如 打开一个容器之后 能够与用户交互 docker run -it centos 进入伪终端后exit命令退出
-p 可以进行端口映射 当访问主机的端口 自动映射到docker容器的某个端口
比如映射到docker的nginx docker run -p 1122:80 nginx 其他机器 访问 http://主机:1122自动访问docker容器的80端口
-d 表示启动容器直接进入后台模式 daemon 一般如果容器中没有任何程序进程 一般直接退出
-v 将主机的某个目录 映射到 docker容器的某个目录
比如 docer run -it -v /data:/data1 centos 表示主机的/data和容器的/data1目录互相挂载 文件修改都会影响两个目录 可以用户传文件
-h 指定容器的主机的主机名
docker ps -a显示所有正在运行或者停止的容器 每个容器都存在一个唯一id
docker ps -a 显示所有正在运行或者停止的容器 每个容器都存在一个唯一id
[root@bogon sbin]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES df775408e9d9 centos "/bin/bash" 7 minutes ago Exited (127) About a minute ago grave_goldwasser 6d0c66822268 centos "/bin/bash" 11 minutes ago Exited (0) 11 minutes ago lonely_lalande f7cdb266a7b8 hello-world "/hello" 19 minutes ago Exited (0) 19 minutes ago compassionate_poitras 0140addda370 nginx "nginx -g 'daemon off" 5 hours ago Exited (0) 14 minutes ago mynginx e27860b7dbc4 centos "/bin/bash" 5 hours ago Exited (127) 5 hours ago mycentos
docker attach 容器id 可以进入一个进入后台进程的容器
docker stop 容器id 关闭一个容器
docker start 容器id 重启一个容器
docker exec 容器id 命令 在一个运行容器中执行一个命令 结合it进入shell界面后 exit退出 容器是不会退出的
docker rm 容器id 删除一个创建的容器
docker rmi 镜像d 删除一个镜像 删除前确定该镜像下没有容器
docker inspect 容器id 查看容器的详细 信息 比如查询进程id docker inspect 容器id | grep Pid
查看ip地址 :
([root@cdh2 ~]# docker inspect fb24be559be3 | grep IPAddress "SecondaryIPAddresses": null, "IPAddress": "172.17.0.2", "IPAddress": "172.17.0.2",)
docker commit 容器id 资源库名称:标签名 用于将修改后的容器反向生成镜像
四。docker构建映像
1》模拟环境
使用centos作为基础镜像 在centos镜像中安装tomcat 然后经端口8080映射为主机80
2》构建方式(确认安装并启动docker)
》手动构建
>>下载centos镜像 (docker pull centos)
>> 启动centos容器 挂载主机和容器目录用于上传jdk和tomcat , 映射80端口到8080 ,并且进入伪终端:
>> 下载jdk和tomcat在主机/data目录 并再次进入伪终端
#主机创建目录 mkdir /data #运行容器 docker run -it -p 80:8080 -v /data:/data centos
[root@bogon data]# ll total 63016 -rw-r--r-- 1 root root 7073612 Sep 23 2016 apache-tomcat-6.0.45.tar.gz -rw-r--r-- 1 root root 57450587 Sep 23 2016 jre-8u77-linux-x64.rpm [root@bogon data]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b1f3d11cfb4a centos "/bin/bash" 5 minutes ago Exited (0) 4 minutes ago gigantic_liskov [root@bogon data]# docker start b1f3d11cfb4a b1f3d11cfb4