Docker入门

Docker的名词

镜像(image):
就是一个模板,可以启动多个容器:run
容器(container):
独立运行一个或多个
启动、停止、删除
可以理解为一个简易的linux系统
仓库(repository):
存放容器的地方;
共有和私有仓库

安装Docker

环境准备

1、CentOS 7
2、使用Xshell连接服务器

安装

官网文档有安装文档

1、卸载旧的docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
2、安装依赖包
sudo yum install -y yum-utils
3、设置镜像仓库
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo # 默认是国外的
4、安装 docker-ce社区版本 ee企业版
yum makecache fast # 清空缓存
sudo yum install docker-ce docker-ce-cli containerd.io
5、启动docker
sudo systemctl start docker
docker version # 是否启动成功
6、测试helloworld
docker run hello-world # 在线下载
7、查看hello-world的镜像
docker images

卸载docker

1、卸载docker
sudo yum remove docker-ce docker-ce-cli containerd.io
2、删除目录,所有的文档都在docker目录下
sudo rm -rf /var/lib/docker

启动与关闭

1、开启docker服务
systemctl start docker 
2、查看是正在运行的容器
docker ps
3、停止容器
docker stop 容器ID
4、关闭docker
service docker stop

Docker常用命令

帮助命令

docker info
docker --help

文档命令地址
https://docs.docker.com/reference/

镜像命令

docker images # 查看所有镜像
          -a, --all             Show all images (default hides intermediate images)
          -q, --quiet           Only show numeric IDs

docker search mysql --filter=STARS=3000 # 过滤掉3000star以下的 
下载镜像
docker pull mysql # 默认下载最新版本, 分层下载(联合文件系统)
docker pull mysql:5.7
删除镜像
docker rmi 镜像ID # 空额删除多个镜像
删除所有
docker rmi $(docker images -aq)

容器命令

说明:进入镜像才可以创建容器
容器新建和启动

docker run [可选参数]
      --name="name"
      -d # 后台方式运行
      -it # 使用交互式方式运行,进入容器查看内容
      -p # 指定容器端口 3344:80
      -P # 随机指定端口
启动进入容器
docker run -it centos /bin/bash

退出
exit # 关闭并退出
Ctrl + P + Q # 不停止退出
列出所有运行容器
docker ps
            -a # 当前和历史运行容器
            -n=1 # 显示1个结构
            -q # 只显示容器编号
删除容器
docker rm 容器ID
docker rm -f $(docker ps -aq)
docker ps -a -q|xargs docker rm

启动和停止容器
docker start ID
docker restart ID
docker stop ID
docker kill ID

其他常用命令

后台启动
docker run -d 镜像名 # 启动就会停止,因为没有前台进程
查看日志
docker logs -tf --tail 10 ID # 显示最新10条日志
查看容器的进程信息
docker top ID
查看元数据
docker inspect ID

进入当前运行的容器
docker exec -it ID /bin/bash # 进入容器开启一个新的终端
docker attach  ID # 进入正在运行的终端
从容器内拷贝文件到主机
docker cp ID:容器内路径 目的主机路径 
docker stats # 查看docker cpu的运行状态
命令小结

安装Nginx例子

docker search nginx # 推荐到hub上搜索
docker run -d --name nginx_chini -p 3344:80 nginx 
curl localhost:3344 # 测试是否安装启动成功

安装Tomcat

docker run -it --rm tomcat:9.0 # 用完即删

提交自己的镜像

用commit保存当前容器的状态,使用commit来提交,以获得一个新的镜像

docker commit -m="注解" -a ="作者"  ID 目标镜像名:[TAG]
docker commit -a="chini" -m="this is a test" 354c3d6e4a17 tomcat:9.9

容器数据集

卷技术:容器的持久化和同步,容器间数据共享

数据独立存储在容器外,防止容器删除之后数据丢失

1、使用-v挂载:双向绑定,容器内外操作自动同步
docker run -it -v 主机目录:容器目录

实战mysql

-v 挂载内部:可以bu
-d 后台运行
-p 端口映射
-e 设置密码
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql
# 进入mysql
mysql -u root -p
show databases
use tatabase_name

具名挂载和匿名挂载

# 匿名
docker run -d -P --name nginx01 -v /ect/nginx nginx
# 具名:卷名(chini-nginx)方便找到卷,建议使用
docker run -d -P --name nginx01 -v chini-nginx:/ect/nginx nginx
# 查看位置
docker volume inspect chini-nginx
#######################
-v 容器内路径 匿名
-v 卷名:容器内路径 具名
-v /主机路径:容器内路径 指定路径名挂载

DockerFile 用来构建docker镜像文件!(commit)
脚本文件,用于生产镜像

# 编写dockerfile文件
FROM centos
VOLUME ["volume01","volume02"] # 挂载卷 匿名
CMD echo "end-------"
CMD /bin/bash
docker build -f dockerfile1 -t chini/centos:1.0 .

容器间数据共享 --volumes-from
也可以做配置信息的传递,数据的生命周期一直持续到没有人使用为止

# docker02 集成docker01挂载的卷
# 即是docker01被删除之后文件依旧在
docker run -it docker02 --volumes-from docker01 ID

DockerFile

用来构建镜像文件
1、编写douckerfile文件(dockerfile是面向开发的)
2、docker build 构建成为一个镜像
3、docker run 运行镜像
4、docker push 发布镜像(DockerHub,阿里云镜像)

# dockerfile 基础知识
每个指令都会提交一个层
指令关键字都是大写
#表示注释

# 基本指令
FROM 基础镜像
MAINTAINER 镜像是谁写的 姓名+邮箱
RUN 镜像构建的时候需要运行的命令
ADD 步骤,逐渐创建层
WORKDIR 镜像的工作目录
VOLUME 挂载目录
EXPOSE 指定暴露端口 替代命令行中-p
ONBULID 
COPY 将文件拷贝到镜像中
CDM 指定容器启动时运行的指令(只执行最后一条)
ENTRYPOINT 区别于CMD可以追加命令,可以在默认命令中追加命令
ENV 设置环境变量

实战测试
创建自己的centos

# 1、dockerfile
FROM centos
MAINTAINER Chini<wchen@qq.com>
ENV MYPATH /usr/local 
WORKDIR $MYPATH # 默认进入docker的根目录
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD /bin/bash
# 2、构建镜像
docker build -f dockerfilename -t mycentos:0.1 .

列出本地镜像的历史,拿到一个镜像可以学习官方是怎么做的。

docker history ID

发布镜像到dockerhub

1、注册账号,确定可以登录
2、在服务器上提交
docker login -u 
docker push 作者名/name:[TAG] # 尽量带版本号
docker小结

Docker网络

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342