docker容器是一个独立的系统,相比于VM,不需要绑定整个操作系统,只需要程序运行所需要的library,settins即可,更轻量级,独立、有效
docker能自动化重复性的软件环境、参数配置等工作,开发人员可专注于技术研发,不需要去配置复杂的参数等
image是一个轻量级、独立的、可执行的包,包含了程序运行所需要的所有东西。包括代码、library、环境变量、配置文件等
container是image的执行实例,默认情况下是完全独立于主机环境。容器中的app,library通过docker在主机内核上(host os,多个容器共享),可直接获取主机的本地访问,而VM的app,library是运行在自己的Guest OS上的,通过hypervisor来获取虚拟访问到主机资源。因此容器性能特点更好。
docker包括docker-ce,docker-ee版,即社区版和企业版,通常开发或小规模使用ce即可
Container
1. 编写 dockerFile
2. 使用 docker build 命令生成image
3. 使用 docker login 登录仓库,例如:
docker login -u user -p password wenwenkj.com:5000
4. 使用 docker tag 对image打标签
5. 使用 docker push 将image推送到仓库
相关命令如下:
docker build -t friendlyname . # Create image using this directory's Dockerfile
docker run -p 4000:80 friendlyname # Run "friendlyname" mapping port 4000 to 80
docker run -d -p 4000:80 friendlyname # Same thing, but in detached mode
docker ps # See a list of all running containers
docker stop# Gracefully stop the specified container
docker ps -a # See a list of all containers, even the ones not running
docker kill# Force shutdown of the specified container
docker rm# Remove the specified container from this machine
docker rm $(docker ps -a -q) # Remove all containers from this machine
docker images -a # Show all images on this machine
docker rmi# Remove the specified image from this machine
docker rmi $(docker images -q) # Remove all images from this machine
docker login # Log in this CLI session using your Docker credentials
docker tag
username/repository:tag # Tag
for upload to registry
docker push username/repository:tag # Upload tagged image to registry
docker run username/repository:tag # Run image from a registry