前言
本方案主要目的是学习, 该方案不太合适于企业项目
是什么?
白话点, 是个提供了必要环境的虚拟机(类似于java的导入部分包一样和c++的头文件差不多), 所以它比普通的VMWare或者VirtualBox安装的虚拟机要轻
总体来说类似于jvm那样的存在, 只不过jvm运行的是java编译的字节码, docker运行的是各种组件, 比如mysql, redis, zookeeper或者我们的项目
有哪些关键的概念
镜像
docker镜像类似于系统安装包ISO, 或者我们对某个程序的备份, 将这个备份压缩成rar压缩包, 备份了很多程序的数据和配置, 我们只要把这个压缩包丢给别人, 别人解压并使用这个程序
容器
容器类似于我们的程序(前面的镜像是压缩包), 可以直接运行
总结
镜像和容器的关系是 一个镜像对应可以多个容器(只要你创建的多)
怎么用?
设置镜像加速
创建或编辑该文件:
vi /etc/docker/daemon.json
在该文件中输入如下内容:
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com",
"https://registry.docker-cn.com"
]
}
docker基本指令
service docker start # 开启docker
service docker stop # 关闭docker
service docker restart # 重启docker
镜像管理
导入导出镜像
docker save java > /home/java.tar.gz
docker load < /home/java.tar.gz
镜像查找
docker search java
镜像下载
docker pull java
查看镜像列表
docker images
查看镜像信息
docker inspect java
[
{
"Id": "sha256:d23bdf5b1b1b1afce5f1d0fd33e7ed8afbc084b594b9ccf742a5b27080d8a4a8",
"RepoTags": [
"java:latest"
],
"RepoDigests": [
"java@sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d"
],
"Parent": "",
"Comment": "",
"Created": "2017-01-17T00:52:54.890877145Z",
"Container": "4b4ab1e131616e04a88f26f9811e5847dd0c3ec5f8178b634b388d3c510ee606",
"ContainerConfig": {
"Hostname": "33842653d6db",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=C.UTF-8",
"JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64",
"JAVA_VERSION=8u111",
"JAVA_DEBIAN_VERSION=8u111-b14-2~bpo8+1",
"CA_CERTIFICATES_JAVA_VERSION=20140324"
],
"Cmd": [
"/bin/sh",
"-c",
"/var/lib/dpkg/info/ca-certificates-java.postinst configure"
],
"ArgsEscaped": true,
"Image": "sha256:7cfe1ce37b990ea20d6377b8901f5ffccd463ed2f965e9730d834e693b53baec",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": [],
"Labels": {}
},
"DockerVersion": "1.12.3",
"Author": "",
"Config": {
"Hostname": "33842653d6db",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=C.UTF-8",
"JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64",
"JAVA_VERSION=8u111",
"JAVA_DEBIAN_VERSION=8u111-b14-2~bpo8+1",
"CA_CERTIFICATES_JAVA_VERSION=20140324"
],
"Cmd": [
"/bin/bash"
],
"ArgsEscaped": true,
"Image": "sha256:7cfe1ce37b990ea20d6377b8901f5ffccd463ed2f965e9730d834e693b53ba