docker的学习笔记(1)
##简介
Docker是一个开源的容器引擎,它基于LCX容器技术,使用Go语言开发。
源代码托管在Github上,并遵从Apache2.0协议。Docker采用C/S架构,其可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。
简单来说docker就是一种容器的管理工具
###官方资料
官网
github源码
中文文档
###部署,安装
参考链接
ubuntu:
apt-get update//升级软件源
apt-get install docker-ce -y//安装
测试:
docker version
docker基本命令
systemctl [参数] docker
1.start 开启服务
2.stop 关闭
3.restart 重启
4.status 状态
How to use Docker
docker的主要有image(镜像),(container)容器,(data)数据,(net)网络等。
镜像(image)
简介
镜像是什么:它是一个只读的文件,就类似于我们安装操作系统时候所需要的那个iso光盘镜像,通过运行这个镜像来完成各种应用的部署。这里的镜像就是一个能被docker运行起来的一个程序。用来创建一个容器。
####使用镜像
获取,查看,查找
查找(在官方仓库查找):
docker search [image_name]
test:~$docker search ubuntu
获取镜像:
docker pull [image_name]
查看镜像:
docker images <image_name>
test:~$docker images ubuntu
注:1.image 标识了镜像唯一id,若id相同则是同一镜像
2.docker images -a 查看所有镜像
3.REPOSITORY:名称 ,TAG :版本标签,IMAGE ID:镜像id,CREATED:创建时间,SIZE:大小
删除与重命名
重命名:
docker tag old_image:old_tag new_image:new_tag
test:$docker tag ubuntu:latest newubuntu:v1.0
删除镜像:
docker rmi image_id
test:$docker rmi newubuntu:v1.0
导入和导出镜像
导出:把已经下载好的镜像,导出到本地,用来备份
docker save -o src_image dst_image
test:$ docker save -o nginx.tar b175e7467d66
导入:从本地xx.tar导入docker
docker load < image_name.tar
test:$ docker load < nginx.tar
创建和历史
查看镜像历史命令
docker history image_name
test:$docker history nginx:lotest
创建:由模板创建镜像
登录系统模板镜像网站
找到一个镜像模板进行下载如,ubuntu-16.04-x86_64.tar.gz
cat 模板文件名.tar | docker import - [自定义镜像名]
cat ubuntu-16.04-x86_64.tar.gz | docker import - ubuntu-mini
container 容器
容器是什么?容器就类似于我们运行起来的一个操作系统,而且这个操作系统启动了某些服务。这里的容器指基于镜像运行起来的一个被隔离的服务。
使用容器
启动,查看
启动:docker run <参数> image_name <执行命令>
test:$docker run nginx /bin/echo "hello docker"
注:-i 允许容器和std_in进行交互
-t 指定一个伪终端
-d 守护进程启动,返回容器id (container_id)
查看:docker ps
test:$docker ps
关闭,删除
关闭容器:docker stop container_id
test:$docker stop
删除容器:
1.正常删除:docker rm container_id
2.强制删除:docker rm -f container_id
3.批量删除:docker rm -f $(docker ps -a -q)
进入,退出
创建并进入:docker run --name container_name -i-t docker_image /bin/bash
test:$:docker run -it --name taoist-nginx nginx /bin/bash
$:exit//退出
退出:输入exit 或者 ctrl+D
----------------
手动进入:docker exec -it container_id /bin/bash
test:$docker exec -it a714b758f320 /bin/bash
基于容器创建镜像
model 1
docker commit -m '改动' -a "作者" container_id new_image:tag
test:#进入一个容器,创建文件后并退出:
:~$ ./docker_in.sh a714b758f320
:~$ mkdir taoist_ma
:~$ ls
:~$ exit
创建一个镜像:
:~$ docker commit -m 'mkdir taoist_ma ' -a "taoist_ma" a714b758f320 nginx:v1.0
查看镜像:
:~$ docker images
启动一个容器
:~$ docker run -itd nginx:v1.0 /bin/bash
进入容器进行查看
:~$ ls
model 2
docker export container_id > image_name.tar
test:$ docker export a714b758f320 > taoist_nginx.tar
日志,详情和端口
日志:docker logs containaer_id
详情:docker inspect container_id
端口:docker port container_id