docker的安装及常用命令请参考博客Docker相关内容整理(一)_活水774的博客-CSDN博客
docker应用部署请参考博客Docker应用部署_活水774的博客-CSDN博客
1、将容器保存为镜像
#将docker_nginx 容器保存为一个镜像-名称为self_nginx_image
docker commit docker_nginx self_nginx_image
测试结果如下:
2、镜像备份
#可以使用以下命令将镜像文件保存到宿主机的tar文件
docker save -o self_nginx_image.tar self_nginx_image
3、镜像恢复与迁移
#首先删除镜像self_nginx_image
docker stop self_nginx #停止运行中的容器
docker rm self_nginx #删除镜像的容器
docker rmi self_nginx_image:latest #删除镜像
#执行下面命令导入镜像
docker load -i self_nginx_image.tar
4、Dockerfile
Dockerfile 是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。
对于开发人员,可以为开发团队提供一个完全一致的开发环境。
对于运维人员,在部署时,可以实现应用的无缝移植。
1)常用命令
FROM image_name:tag --指定dockerfile基于那个image构建,镜像不存在会先下载 MAINTAINER user_name --声明镜像的构建者 ENV key value --设置环境变量 可以写多条 RUN command --执行一段命令 可以写多条 ADD source_dir/file dest_dir/file --将宿主机文件复制到容器内,并自动解压 COPY source_dir/file dest_dir/file --将宿主机文件复制到容器内,不解压 WORKDIR parth_dir --设置工作目录
2)举个例子(docker_springboot连接 https://download.csdn.net/download/weixin_59230567/85083976)
a.构建dockerfile文件
FROM java:8 --定义父镜像 MAINTAINER xiaohuoshi --定义作者信息 ADD docker_springboot-0.0.1-SNAPSHOT.jar docker_springboot.jar --将jar包添加到容器 CMD java -jar docker_springboot.jar --定义容器启动执行的命令
b.通过dockerfile构建镜像
docker build -t='docker_springboot' .
执行结果如下图
以上表示构建镜像成功,查看镜像
启动自定义镜像:在启动之前需要把占用8080的端口的镜像或应用关掉,否则会报端口冲突
#启动创建容器并启动 docker run -id --name=app -p 8080:8080 docker_springboot
用外部机器可以看到效果
docker_springboot.jar 下载地址https://download.csdn.net/download/weixin_59230567/85083976
如果连接失效,也可以自己写一个简单的springboot项目,打成jar包即可
@RestController
public class HelloController {
@RequestMapping("/")
public String hello(){
return "hello springboot for docker ~";
}
}
服务编排相关资料在此补充 Docker Compose 服务编排_活水774的博客-CSDN博客
5、Docker私有仓库搭建与配置
#下载私有仓库镜像
docker pull registry
#启动私有仓库容器
docker run -id --name=registry -p 5000:5000 registry
外部连接访问私有仓库地址:http://192.168.31.127:5000/v2/_catalog
#修改daemon.json文件
vim /etc/docker/daemon.json
#修改内容如下 对应自己宿主机的ip地址
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries":["192.168.31.127:5000"]
}
#注意 在上述文件中添加一个key,保存退出。此步用于让 docker 信任私有仓库地址;注意将私有仓库服务器ip修改为自 己私有仓库服务器真实ip {"insecure‐registries":["私有仓库服务器ip:5000"]}
#重启diocker服务
systemctl restart docker
#启动容器
docker start registry
#标记此镜像为私有仓库镜像
docker tag docker_springboot 192.168.31.127:5000/docker_springboot
#上传标记的镜像
docker push 192.168.31.127:5000/docker_springboot
6、从私有仓库拉取镜像
#拉取镜像 docker pull 私有仓库服务器ip:5000/镜像
docker pull 192.168.31.127:5000/docker_springboot
注意:拉取镜像的宿主机的/etc/docker/daemon.json文件中需要加入 {"insecure‐registries":["私有仓库服务器ip:5000"]} 让docker 信任私有仓库地址,如下
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries":["192.168.31.127:5000"]
}
后续更新dockermaven等内容