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查看相应目录) #在/usr/下创建java目录,用来存放jdk #切换镜像的目录至/usr/java #在/usr/java下创建jdk目录,用来存放jdk文件 #切换镜像的目录至/usr/java/jdk #将宿主机的jdk目录下的全部文件考入至镜像的/usr/java/jdk目录下 #切换镜像的目录至/opt #在/opt下创建tomcat目录,用来存放tomcat文件 #将宿主机的tomcat目录下的全部文件考入至镜像的/opt/tomcat目录下 #设置环境变量 ENV JAVA_HOME=/usr/java/jdk #设置容器启动时执行的操作 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 文件名
恢复时不需要指定镜像名,文件中有保存