docker 初识
前言
Docker是什么
Docker包括一个命令行程序,一个后台守护进程,以及一组远程服务。解决了常见的软件问题,简化了安装,运行,发布和删除软件,通过UNIX技术实现,称之为容器。
解决了什么问题
1.软件之间依赖解耦(隔离),升级时不用考虑别的软件是否兼容.
2.删除软件不用担心删除不干净
3.安装的软件有恶意程序时,减少攻击面.(保护机器)
4.提高软件可移植性
5.如果生产环境挂了,能马上在另一台部署一次.(如果被打包成镜像)
6.它能让你的服务器看起来更简洁.
安装
安装docker
链接: 安装教程
Hello World
$ docker run dockerinaction/hello_world
docker 仓库
查找镜像:
$ docker search DOCKER_NAME
常用命令
容器状态
运行
暂停
重新启动
退出
创建和启动一个新容器
$ docker run --detach --name web nginx:latest
–detach 守护进程标记(在后台运行) (-d)
–name 声明容器的名称
nginx:latest 镜像名称:版本号(latest 最后一个test版本)
运行可交互的容器
$ docker run --interactive --tty --name web_test busybox:latest /bin/sh
–interactive 保持输入流对容器开放(-i)
–tty 给容器分配虚拟终端,需要给容器发命令(-t)
/bin/sh 与该脚本进行交互
列表,停止,重启,查看容器输出,删除容器
容器列表
$ docker ps -a
运行中的容器列表
$ docker ps
停止
$ docker stop ODCKER_NAME
删除
$ docker rm -vf DOCKER_NAME
重启
$ docker restart DOCKER_NAME
查看容器日志
$ docker logs DOCKER_NAME
注入变量
向容器中注入环境变量 (--env)
向容器发送命令
$ ocker exec DOCKER_NAME ps
查看进程
$ docker top DOCKER_NAME
进入容器
$ docker exec -it DOCKER_NAME /bin/bash
镜像
列表
$ docker images
删除某个镜像:
$ docker rmi IMAGES_NAME
持久化容器
–restart(容器故障自动重启)
存储卷
目的:把容器中的目录映射到主机上
为什么要这样做?
有时候数据需要与程序分离:
如 mysql 数据库系统和数据文件 ,使得这些文件可以分享
绑定挂载卷
–volume ~/本机路径:容器路径(本机内容会覆盖容器上的内容)
:ro 只读
:rw 读写
注:计
Docker 管理卷
-v 本机路径
继承存储卷
–volumes-from DOCKER_NAME
待续
docker 仓库
1、登录
docker login http://xxxxx.com
2、登录私有hub创建项目
例如项目叫:abc-dev
3、给镜像打tag
docker tag 2e25d8496557 xxxxx.com/abc-dev/arc:1334
2e25d8496557:IMAGE ID,可以用docker images 查看
xxxxx.com:私有hub域名
abc-dev:项目名称
arc:镜像名称
1334:镜像版本号
4、推送
docker push xxxxx.com/abc-dev/arc:1334