修改docker默认存储位置
编辑/etc/docker/daemon.json
(如果不存在,请创建)并包括:
{
"data-root": "/new/path/to/docker-data"
}
编辑
vi /etc/docker/daemon.json
修改docker安装路径:
{
"data-root": "/data/docker-data",
"log-driver":"json-file",
"log-opts": {"max-size":"100m", "max-file":"3"},
"insecure-registries":[
"192.168.8.233:1180"
]
}
重启docker
systemctl daemon-reload
systemctl restart docker
docker容器改成开机自启动
docker update --restart=always xxx
docker安装JDK
获取JAVA镜像:
在终端客户端命令行输入以下命令,获取JAVA镜像。
docker pull java
默认是从Docker Hub官方的仓库中下载镜像的。如果没有指定对应的版本,默认会获取版本为latest的镜像。
查看docker镜像
docker images
启动docker JDK容器
启动容器
docker run -d -it --name jdk1.8 java
其中,–name后面的“jdk1.8”是为容器指定了一个别名,而最后的那个“java”指的是下载镜像时的名称。
查看运行中的容器
docker ps
查看容器中安装的jdk版本
使用容器的别名进入容器:
docker attach jdk1.8
使用exec命令进入容器 【方式一】:通过容器别名进入容器:
docker exec -it jdk1.8 bash
【方式二】:通过容器ID进入容器:
docker exec -it id /bin/bash
进入容器后,输入 java -version 查看JDK版本信息
java -version
退出容器
exit
Docker镜像的导入导出
save命令 docker save [options] images [images...]
示例
docker save -o oracle11g.tar oracle11g:latest
或
docker save > nginx.tar nginx:latest
其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)
load 命令 docker load [options]
示例
docker load -i nginx.tar
或
docker load < nginx.tar
其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
export命令 docker export [options] container
示例
docker export -o nginx-test.tar nginx-test
其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)
import命令 docker import [options] file|URL|- [REPOSITORY[:TAG]]
示例
docker import nginx-test.tar nginx:imp
或
cat nginx-test.tar | docker import - nginx:imp
区别
export命令导出的tar文件略小于save命令导出的 export命令是从容器(container)中导出tar文件,而save命令则是从镜像(images)中导出 基于第二点,export导出的文件再import回去时,无法保留镜像所有历史(即每一层layer信息,不熟悉的可以去看Dockerfile),不能进行回滚操作;而save是依据镜像来的,所以导入时可以完整保留下每一层layer信息。如下图所示,nginx:latest是save导出load导入的,nginx:imp是export导出import导入的。
建议
可以依据具体使用场景来选择命令 若是只想备份images,使用save、load即可 若是在启动容器后,容器内容有变化,需要备份,则使用export、import