docker 简介
定义:轻量级虚拟机 应用容器
优点:
1.摆脱依赖库以及繁琐的配置
2.数据和内存控件相互隔离,保证一定的安全性
与 VM 区别
性能开销少,资源利用率高,启动速度快
VM 在 Hypervisor 将硬件设备虚拟化,每个容器需要安装自己的 os。
docker 安装
这个可以参考
Windows 安装方法
Ubuntu Docker 安装
CentOS Docker 安装
Windows Docker 安装
docker 命令
docker 容器的相关命令
1.查看运行的 docker 容器 docker ps
查看所有容器(包括已经停止运行的)
docker ps -a
2.查看某个容器的日志 docker logs 镜像名称/id
3.删除容器 docker rm
docker rm $(docker ps -a | awk '/training\/webapp/ {print $1}')
docker attach
4.在容器里执行命令 docker exec
docker exec -it <image id> /bin/bash
5.进入容器进行命令操作 docker attach < 容器 id>
使用 docker attach 命名进入 docker 容器后:
-
如果要正常退出不关闭容器,请按 Ctrl+P+Q 进行退出容器。
-
如果使用 exit 退出,那么在退出容器后会关闭容器
6.查看容器详细情况 docker inspect
查看容器 ip
docker inspect --format='{{.Path}}{{.NetworkSettings.IPAddress}}' $(docker ps -a -q)
查看容器的挂载情况
docker inspect --format='{{.Path}}{{.Mounts}}' $(docker ps -a -q)
7.容器打包成镜像 docker commit
命令把一个正在运行的容器保存为镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker commit <CONTAIN-ID> <IMAGE-NAME>
参数说明:
-a :提交的镜像作者;
-c :使用 Dockerfile 指令来创建镜像;
-m :提交时的说明文字;
-p :在 commit 时,将容器暂停。
8.启动已存在的容器
docker start
9.查看 docker 状态 docker stats {容器名称}
10.docker 复制文件操作 docker cp
示例
docker cp /www/runoob 96f7f14e99ab:/www/
11.导出 docker export {docker 容器}
使用容器 nginx,现在要将这个容器保存为一个文件 nginx.tar
docker export nginx > /home/nginx.tar
12.导入 docker import
docker import {tar 文件} {镜像名称}
docker import hello.tar.zg hello
13.查看端口映射 docker port {容器名称}
docker port php
9000/tcp => 0.0.0.0:9000
14.更改映射
iptables -t nat -A DOCKER -p tcp --dport host_port -j DNAT --to-destination docker_ip:$docker_port
比如 php-fpm 的 ip 172.17.0.2
sudo iptables -t nat -A DOCKER -p tcp --dport 2021 -j DNAT --to-destination 172.17.0.2:22
docker 镜像相关命令
1.查看镜像列表 docker images
2.删除镜像 docker rmi
移除所有的容器和镜像
docker kill $(docker ps -q)
docker rm $(docker ps -a -q)
docker rmi $(docker images -q -a)
3.搜索镜像 docker search
4.获取镜像 docker pull {镜像名称}
如果拉取时间过慢则需要增加中国源
6.创建容器并启动 docker run
docker run -p {容器的IP}:{主机的IP} --name {容器的名称} -v {主机目录}:{容器目录} -d {镜像名称 :版本}
参数:
-p 端口映射
-v 目录映射
-it 打开 stdin ,终端登录
-d 前台还是后台
win10 使用挂载
docker run -v f:/user:/data alpine ls /data
运行镜像 直接进入容器
docker run -t -i xxx /bin/bash
附加:supervisord
docker run .... /usr/bin/supervisord
注:supervisor 是用 Python 开发的一套通用进程管理程序,能将一个普通的命令行进程变为后台 daemon,并监控进程状态,异常退出时能自动重启。可通过 supervisorctl status 查看 supervisord 当前管理的所有进程的状态
7.存出 docker save {镜像}
docker save -o quay.io-calico-node-1.tar quay.io/calico/node
有一个基础镜像 centos,现在要将这个镜像保存为一个文件 centos-save-1204.tar
docker save centos > /home/centos-save-1204.tar
8.载入 dokcer load
dokcer load -i XXX.tar
导出 export 与 保存 save 的区别
1 .export 导出的镜像文件大小 小于 save 保存的镜像
2 .export 导出(import 导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag );而 save 保存(load 加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。(查看方式:docker images --tree)
Dockerfile
1.使用 Dockerfile
文件名: Dockerfile
使用命令
sudo docker build -t {docker镜像的名字} .
docker 安装
本人使用的环境:win10 家庭中文版
PS:为什么不直接升级 win10 专业版,这样就不需要安装 docker-toolbox,那是因为不管是什么版本的 windows,启动 docker 的本质来源(linux 系统)都是一样,只是一个使用的 visualbox 一个使用的是 hyper-V
最关键是:hyper-v 不稳定,而且 docker 挂载直接就是一个硬盘,很不方便
如何绿色安装 docker[持续更新]
将最新的镜像放到 C:\Users\用户名\.docker\machine\cache\
删除C:\Users\用户名\.docker\machine\machines\default
然后重新打开 Docker Quickstart Terminal
在启动命令上可以看到 默认会从 cache 中 iso 复制到 default\boot2docker.is
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于