Docker常见命令以及制作tomcat镜像发布项目

本文介绍了Docker的基础知识,包括安装步骤(针对Centos 7.X和6.X版本)、启动流程、镜像和容器的操作,如容器创建、文件拷贝、端口映射。重点讲解了如何制作包含JDK和Tomcat的镜像,通过编写Dockerfile和使用`docker build`命令。最后提到了备份与恢复的注意事项。
摘要由CSDN通过智能技术生成

Docker官网: www.docker.com

1.What isDocker?

见官网

2.安装

查看是否已经安装的Docker软件包
sudo yum list installed | grep docker
 
如果已安装不想要docker则卸载掉:
sudo yum -y remove docker-io.x86_64

2.1 Centos 7.X版本

yum install docker
 

2.2 Centos 6.X版本

Centos6.7的标准yum源中已经没有Docker的安装包了,这时,我们需要安装EPEL
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
 
yum install docker-io
 
直到看到Complete! 基本上即为成功
 
使用docker –v 查看版本
 
 

3. 启动

3.1 Centos 7.X版本

启动/停止/重启/查看状态/开机启动  
systemctl  start/stop/restart/status/enable  docker
 

3.2 Centos 6.X版本

启动/停止/重启/查看状态/开机启动  
Service  docker  start/stop/restart/status/enable

 

4. 镜像操作

列出本地所有镜像 docker images   
搜索网络镜像 docker search +关键字 
拉取镜像  docker pull +关键字
删除单个镜像 docker rmi 镜像id       
删除所有镜像 docker rmi `docker images -q`
 
注:因为拉取的镜像为国外镜像,下载速度会特别慢,所以推荐使用国内镜像,国内镜像地址有很多.例如:
www.daocloud.io
 
 

5. 容器操作

查看正在运行容器 docker ps    
查看所有容器 docker ps -a   
查看最后一次运行的容器 docker ps -l    
查看停止容器 docker ps -f  status=exited
启动已存在容器 docker start <CONTAINER ID/NAME>
关闭已存在容器 docker stop <CONTAINER ID/NAME>
 

5.1 容器的创建

使用命令 docker run
参数说明:
            -i : 表示运行容器
            -t : 标识同期启动后会进入其命令行,即为创建一个交互式容器.
            -d : 不会自动登录,容器后台运行,即为创建一个守护式容器.
            --name : 为创建的容器命令
            -v : 表示目录映射关系 后面接参数 宿主机目录:容器中的目录
            -p : 表示端口映射关系
            注 : -v -p 可以在创建容器是多次使用 做多个目录或端口映射, 
                     推荐使用-v –p,
                  使用-v后,在宿主机上修改文件,就共享到容器上了.
                  使用-p后,可以访问宿主机的ip:端口就可以访问容器.
 

5.2 交互式容器

可以简单的把交互式容器理解为前台启动,把守护式容器理解为后台启动
 
创建一个交互式容器 并取名为 myredis:
docker -it --name=mybatis -p 6379:6379 \
daocloud.io/daocloud/dao-redis: master-init
 创建成功后,通过docker ps命令查询,可以看到启动的容器,状态为启动状态

使用exit命令 退出当前容器

交互式容器使用exit退出后 容器变成关机状态

 

5.3 守护式容器

创建一个交互式容器 并取名为 mytomcat:
docker run -di --name=mytomcat4 -p 8080:8080 \
-v /usr/local/tomcat:/usr/local/tomcat/webapps \
--privileged=true \
daocloud.io/library/tomcat:latest 
 
登录守护式容器的方法
docker ecex –it 容器名/容器id /bin/bash
 
使用exit命令 退出当前容器
守护式容器使用exit 退出会变成后台运行状态
使用ps查看仍然可以看到容器正在运行
后面接/bin/bash 命令入容器内部,可以查看容器内部的目录结构

 

5.4 文件拷贝

docker cp 需要拷贝到容器的文件或目录 容器名称:容器目录
可以宿主机拷贝到容器,也可以容器拷贝到宿主机,不可以容器拷贝到容器
(docker cp 原文件目录 目标目录)
 

5.5 端口映射、目录挂载

-v -p

如果共享的是多级目录,可能会出现权限不足的提示,

需要添加参数--privileged=true来解决权限问题

 

5.6 查看容器IP

查看容器运行时的各种参数:
docker imspect mytomcat77
只查看该容器的ip地址:
docker imspect 
--format=’{.NetworkSrttings.IPAddress}}’ mytomcat77
 

5.7删除容器

删除指定容器 
docker rm 容器名/id
删除所有容器
Docker rm `docker ps –a –q`
注: 只能删除已经停止的容器
 

6. 制作镜像

6.1准备工作

6.1.1 准备JDK+TOMCAT软件

​​将apache-tomcat-7.0.57.tar.gz和jdk-7u75-linux-x64.tar.gz,存储于宿主机(Linux机器的本地目录/usr/docker0312下)。为了制作时更加快捷,我直接在本地解压了两个软件,并将目录名字吻别重命名为jdk和tomcat。

根据自己需求,自己修改tomcat的配置文件

 

6.1.2 拉取Centos6镜像

​​因为拉去国外网站的镜像比较慢,所以我们选择拉取:

docker pull daocloud.io/centos:6

 

6.2编写Dockerfile文件

6.2. 编写Dockerfile文件​​

#---------------------------------------------------------------------

#This is a comment注释

#使用基础镜像daocloud.io/centos:6

FROM centos:6
#
指定镜像创建者信息

MAINTAINER lcs5 <<A href="lcs5@163.com">lcs5@163.com>

#切换镜像的目录,进入/usr目录(基础镜像是一个linux系统,可参照linux查看相应目录)
WORKDIR /usr

#在/usr/下创建java目录,用来存放jdk
RUN mkdir java

#切换镜像的目录至/usr/java
WORKDIR /usr/java

#在/usr/java下创建jdk目录,用来存放jdk文件
RUN mkdir jdk

#切换镜像的目录至/usr/java/jdk
WORKDIR /usr/java/jdk

#将宿主机的jdk目录下的全部文件考入至镜像的/usr/java/jdk目录下
ADD jdk /usr/java/jdk

#切换镜像的目录至/opt
WORKDIR /opt

#在/opt下创建tomcat目录,用来存放tomcat文件
RUN mkdir tomcat

#将宿主机的tomcat目录下的全部文件考入至镜像的/opt/tomcat目录下
ADD tomcat /opt/tomcat

#设置环境变量

ENV JAVA_HOME=/usr/java/jdk
ENV JAVA_BIN=/usr/java/jdk/bin
ENV PATH=$PATH:$JAVA_HOME/bin
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#设置容器启动时执行的操作

CMD /opt/tomcat/bin/catalina.sh run

#---------------------------------------------------------------------

以上就是Dockerfile文件的内容,将该文件存入宿主机当前目录/usr/docker0312下,与jdk,tomcat同目录。

 

6.3 制作镜像

6.3 制作镜像

使用命令:dockerbuild -t centos_jdk7_tomcat7_lcs:latest .

其中centos_jdk7_tomcat7_lcs为镜像名称,latest为镜像tag

镜像制作完成后,使用docker images命令,可以查看到当前镜像

 

7. 备份与恢复

保存容器为镜像 docker commit 容器名 镜像名
镜像保存为文件 docker save –o 文件名 镜像名
            保存为文件后可以拷贝,备份,保存到本地等操作
文件恢复成镜像 docker load –i 文件名
            恢复时不需要指定镜像名,文件中有保存
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值