一、docker基础操作
Docker 要求 Ubuntu 系统的内核版本高于 3.10
通过 uname -r 命令查看你当前的内核版本
makefile
例如:创建一个makefile文件(制作springboot项目运行的docker镜像_跟派大星学编程-CSDN博客_制作springboot镜像https://blog.csdn.net/junmoxi/article/details/79996524)
1、创建文件夹 cmd
sudo mkdier cmd
2、在cmd文件里创建makefile文件
sudo touch makefile
内容如下:
FROM ubuntu
MAINTAINER tan
COPY jdk1.8.0_151 jdk1.8.0_151
COPY web web
RUN chmod 777 ./web/WEB-INF/*
ENV JAVA_HOME=/jdk1.8.0_151
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
EXPOSE 7070
ENTRYPOINT ["nohup","./web/WEB-INF/startup_dev.sh","&"]
3、编译并生成镜像 (. 表示当前路径)
docker build -t mirrorweb:v1.0 .
mirrorweb 生成的镜像名称
v1.0 镜像版本号
4、从镜像中启动容器
docker run --net=host -e JAVA_OPTS='-Xms128m -Xmx256m -Dspring.profiles.active=prod' -p 8080:8080 -t -d mirror:v1.0
5、查看容器运行日志
docker logs命令
docker logs [options] [容器]
例如:打印容器mytest应用后10行的内容
docker logs --tail="10" mytest
实时打印:
docker attach [容器]
名字 |
默认值 |
描述 |
–details |
显示提供给日志的额外细节 |
|
–follow或-f |
按日志输出 |
|
–since |
从某个时间开始显示,例如2013-01-02T13:23:37 |
|
–tail |
all |
从日志末尾多少行开始显示 |
–timestamps或-t |
显示时间戳 |
|
–until |
打印某个时间以前的日志,例如 2013-01-02T13:23:37 |
6、maven打包镜像
mvn package docker:build
二、ubuntu中使用脚本安装docker
1、获取最新版本的 Docker 安装包
wget -qO- https://get.docker.com/ | sh
2、启动docker 后台服务
sudo service docker start
3、测试运行hello-world
docker run hello-world
4、查看正在运行的容器
docker ps
5、查看已经退出的容器
docker ps -a
6、删除容器
docker rm [容器ID]
7、删除镜像(想要删除运行过的images必须首先删除它的container)
docker rmi [镜像ID]
docker rmi 镜像名:tag
8、进入容器
docker exec -it [容器ID] /bin/bash
docker exec -it --user root [容器ID] /bin/bash (root权限进入)
9、退出容器
ctrl+d
10、把主机文件拷贝到容器的某个目录下
docker cp [filepath in master] [container name]:[path in container]
11、查看容器详情
docker inspect [容器ID]
12、查看docker 网络
docker network ls
三、docker开启远程API
ubuntu中
1、修改dokcer配置文件
vim /lib/systemd/system/docker.service
2、修改ExecStart配置
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock
3、保存
service docker restart
若出现如下警告,请执行systemctl daemon-reload后再重启docker
4、在浏览器中访问 http://ip:4243/images/json 成功及说明开启成功
四、docker导入导出
镜像保存/载入:docker load/docker save;
将一个镜像导出为文件,再使用docker load命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。
容器导入/导出:docker import/docker export;
将一个容器导出为文件,再使用docker import命令将容器导入成为一个新的镜像,但是相比docker save命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照
镜像导出
docker save -o [package name].tar [mirror]
例如:
docker save -o images.tar mongo:3.4
镜像导入
docker load -i [package name].tar
例如:
docker load -i jdk.tar
容器导出
docker export [container_id] > [容器快照名]
例如:
docker export devcie>device.tar
容器导入
docker import [容器快照名]
例如:
docker import device.tar
文章评论