Docker学习总结
一、docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
二、docker组成
一个完整的Docker有以下几个部分组成:
- DockerClient客户端
- Docker Daemon守护进程
- Docker Image镜像
- DockerContainer容器
三、使用docker的好处
使用docker可以更轻松的实现部署和迁移,能保持环境的一致性。
四、docker基本概念
- 镜像
相当于一个文件系统。除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
镜像是分层的,前一层是后一层的基础。
- 容器
容器是镜像运行时的实体,容器的实质是进程。
- 仓库
集中存储、分发镜像的服务。
五、生成镜像
- 选择机器作为生成镜像的机器
- /data/docker/daemon.js配置
(mac有图形界面,直接在界面中配置)配置IP和端口,指明仓库地址,生成的镜像会拷贝到这里。使用其他镜像作为基础的,要指明基础镜像来源地址,例如"ampregistry:5000",表明基础镜像来自这里,ampregistry要在hosts中配置。
3.生成镜像准备工作
创建空白目录,再放入Dockerfile文件、需要打成镜像的文件。
目录结构如下:
DockerTest
----test
-------- test_webboot.jar
---- Dockerfile
---- application.properties
Dockerfile 生成镜像文件的docker配置文件,指明了基础镜像的来源、时区等环境信息、镜像要包含的文件、启动命令等。
1 FROM ampregistry:5000/base:1.0.0 //当前镜像的基础镜像,以该镜像为基础,ip:端口/镜像名称 2 3 ENV TZ Asia/Shanghai //时区、语言、编码 4 ENV LANG zh_CN.UTF-8 5 ENV LANGUAGE zh_CN:zh 6 ENV LC_ALL zh_CN.UTF-8 7 8 WORKDIR /opt/project 9 10 ADD application.properties /opt/project/config/application.properties //镜像包中要包含的文件,以及docker运行后文件拷贝到的目录 11 ADD test/test_webboot.jar /opt/project/ 12 13 CMD ["java", "-jar", " test_webboot.jar"] //镜像包中jar包启动命令
4.执行生成镜像命令
docker build -t ampregistry:5000/test:dev .
命名规则为:名称:标签
最后的.表示当前上下文。
六、运行镜像
docker run
七、docker发放
可以使用tar包进行部署。
1、保存tar包
如果想要把镜像存出到本地文件,可以使用docker save命令,例如,存出本地的刚才创建的testimage:lastest为镜像文件testimage.tar文件:
docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
testimage latest baea98d5a437 25 minutes ago 188.3 MB
ubuntu latest fa81ed084842 3 days ago 188.3 MB
docker save –o /data/testimage.tar testimage:latest
得到tar包后,可以拿到其他机器进行载入。
docker load —input testimage.tar
或者
docker load < testimage.tar
八、常用命令
镜像操作:
build Build an image from a Dockerfile
commit Create a new image from a container's changes
images List images
load Load an image from a tar archive or STDIN
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rmi Remove one or more images
search Search the Docker Hub for images
tag Tag an image into a repository
save Save one or more images to a tar archive (streamed to STDOUT by default)
history 显示某镜像的历史
inspect 获取镜像的详细信息
容器及其中应用的生命周期操作:
create Create a new container (创建一个容器)
kill Kill one or more running containers
inspect Return low-level information on a container, image or task
pause Pause all processes within one or more containers
ps List containers
rm Remove one or more containers (删除一个或者多个容器)
rename Rename a container
restart Restart a container
run Run a command in a new container (创建并启动一个容器)
start Start one or more stopped containers (启动一个处于停止状态的容器)
stats Display a live stream of container(s) resource usage statistics (显示容器实时的资源消耗信息)
stop Stop one or more running containers (停止一个处于运行状态的容器)
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
wait Block until a container stops, then print its exit code
attach Attach to a running container
exec Run a command in a running container
port List port mappings or a specific mapping for the container
logs 获取容器的日志