Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中。
发布到任何流行的 Linux/Mac/Win 机器上,也可部署到虚拟机VMs或OpenStack集群。容器是完全使用沙箱机制运行。
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。版本自17.03命令遵循YY.MM年月规则。
Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。docker 有两个版本:社区版(Community Edition,缩写 CE)和企业版(Enterprise Edition,缩写 EE)。
docker 是一个开源的商业产品,企业版包含了一些收费技术服务,社区版完全能够满足日常使用。
Docker在2017年的3月1号之后出现了版本分化docker1.13 -> (docker-ce17.03 and docker-ee)
我目前使用linux mint 18.03基于debian系ubuntu 16.04.5系统(xenial)安装docker-ce18.03
一,安装过程
# 0,首选添加系统内核,docker对内核版本有要求,win系统版本以及硬件都有要求,mac同理 # 1,常规动作更新包索引,并安装依赖包 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common # 2,添加Docker官方的GPG秘钥,也可以使用其他源地址(阿里巴巴,中科大,清华)的GPG秘钥 # 也可以自己从别的地方提前下载GPG秘钥,拷贝到目标机器上,或者vim gpg-key粘贴,使用命令添加即可 # curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 3,设置安装docker二进制稳定版的仓库 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" # 4,更新索引 sudo apt-get update # 5,安装docker-ce即社区版本 sudo apt-get install docker-ce # 6,设置docker-ce拉取容器的软件源,淘宝,清华,中科大,选择速度最快的即可。 # docker version 18.03.1-ce config: /etc/docker/daemon.json vim /etc/docker/daemon.json { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } # 7,重启docker服务,service和systemctl命令如下: sudo service docker start sudo systemctl start docker # 8,查看安装的docker版本 docker --version docker version sudo docker info # 9,运行hello world成功输出Hello from Docker! sudo docker run hello-world sudo docker run hello-world --registry-mirror=https://docker.mirrors.ustc.edu.cn # 注:设置安装docker二进制获取的仓库,win和mac地址拼接同理,都是下载二进制文件。 $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" $ sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial stable" $ sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial stable" $ sudo add-apt-repository "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu xenial stable" # 补充docker常用管理命令: # 容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause] # 容器操作运维 — docker [ps|inspect|top|attach|events|logs|wait|export|port] # 容器rootfs命令 — docker [commit|cp|diff] # 镜像仓库 — docker [login|pull|push|search] # 本地镜像管理 — docker [images|rmi|tag|build|history|save|import] # 其他命令 — docker [info|version] ## 显示docker镜像docker images ## 删除docker镜像docker rmi -f [imageid] ## 显示docker容器docker ps ## 停止docker容器docker stop [containerId] ## 删除docker容器docker rmi -f [containerId] ## 运行,可选:后台运行, 随着docker服务开机启动docker run [imageId] -d --restart=always ## 列出本机的所有 image 文件docker image ls ## 删除 image 文件docker image rm [imageName] ## docker pull tomcat:8 ## 进入容器docker exec [containerId] -it bash ## 执行命令docker exec [containerId] -it [command] ## 容器控制台日志docker logs -f [containerId]
二,修改docker镜像源
1,docker 拉取镜像指定镜像源 sudo docker pull hello-world --registry-mirror=https://docker.mirrors.ustc.edu.cn 2,docker 1.8~1.11 或者更低版本使用:sudo vim /etc/default/docker DOCKER_OPTS="--registry-mirror=https://docker.mirrors.ustc.edu.cn" 3,docker 1.12,1.13 或者更高版本使用:sudo vim /etc/docker/daemon.json 修改镜像源和镜像存储位置:{"registry-mirrors": ["https://registry.docker-cn.com"],"graph":"/home/and/docker"} { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } 4,修改后需要重启docker服务,查看镜像源修改是否生效:sudo docker info ... Docker Root Dir: /var/lib/docker ... Registry Mirrors: https://docker.mirrors.ustc.edu.cn/ Live Restore Enabled: false
三,操作命令
一,docker安装过程省略 docker-ce 17.05 二,docker使用 0,搜索镜像:docker search ubuntu 0,搜索镜像:docker search debian 1,拉取镜像:docker pull NAME[:TAG] 1,拉取镜像:docker pull centos:latest 1,删除镜像:docker rmi IMAGE_NAME 2,运行镜像自动创建容器:docker run ubuntu 3,运行拉取镜像创建容器运行:docker hello-world 6,运行拉取镜像创建容器运行命令:docker run debian ls 4,查看已经拉取的镜像:docker images 5,创建后台容器并启动:sudo docker run -it -d --name ubuntuTest -p 8088:80 ubuntu 5,创建容器默认进入bash交互方式:docker run -it -v /root/and:/and --name debianTest debian 6,创建容器执行命令bash交互方式:docker run -it -v /root/and:/and --name debianTest debian /bin/bash 6,创建容器执行命令bash交互方式:docker create -it --name debianTest debian bash 6,运行容器:docker start con_name 7,停止容器:docker stop con_name 8,更名容器:docker rename old_name new_name 9,删除容器:docker rm con_name A,登录容器:docker attach con_name B,获取容器日志:docker logs con_name C,查看已经创建的容器:docker ps -a D,查看已经启动的容器:docker ps -s E,查看容器的详细信息:docker inspect con_name|con_ID F,查看容器内部的进程:docker top con_name G:运行容器中一个进程:docker exec con_name COMMAND Z,如果创建的容器默认或者指定的命令并非持续交互,退出之后需要通过获取容器日志才能查看容器命令的输出。