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

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

2018-03-12 12:56 447 查看
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 imspectmytomcat77
只查看该容器的ip地址:
docker imspect
--format=’{.NetworkSrttings.IPAddress}}’ mytomcat77
 

5.7删除容器

删除指定容器
docker rm 容器名/id
删除所有容器
Dock
4000
er 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 文件名
            恢复时不需要指定镜像名,文件中有保存
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: