IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker学习笔记 -> 正文阅读

[系统运维]Docker学习笔记

Docker学习笔记

docker images -aq 显示所有的镜像id
DockerHub docker镜像官网
Docker search + 镜像名

通过收藏的star数过滤镜像:Docker search mysql --filter=STARS=3000
docker pull mysql 下载mysql,默认下载latest最新版本
docker pull 镜像名[:tag]
分层下载,docker image的核心 共用下载的镜像文件(联合文件系统)
sha256 签名
.io 是真实地址
docker rmi -f + 容器id
docker rmi -f $(docker images -aq) 递归删除全部容器

docker run [可选参数] image
–name=“***”容器名字
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
docker run -it centos /bin/bash(bash终端窗口) 进入centos系统
exit 直接退出并停止容器
ctrl + P + Q 退出不停止容器
-p 指定容器端口 -p 8080:8080
docker ps -a 列出正在运行的容器和曾经用过的容器
-q 只显示容器编号
docker rm 容器id
docker rm -f 移除全部容器
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id

后台启动命令:
docker run -q 镜像名
docker ps时若启动的容器没有被提供服务的时候,会自杀。

查看日志:
-t 时间戳
–tail number 日志条数
docker logs -f -t / -tf 容器id

查看进程信息:
docker top 容器id

查看镜像元数据:
docker inspect 容器id

进入当前正在运行的容器:
docker exec -it(交互模式) 容器id /bin/bash
进入容器后开启一个新终端,可以在里面操作
docker attach
进入容器后不开启新终端,不启动新的进程

从容器中复制内容到主机:
docker cp 容器名:/home/***.*** /home

docker安装nginx
DockerHub搜索(建议网站)或者docker search nginx
docker pull nginx
docker images
docker run -d --name nginx01 -p (端口号)3344:80 nginx
-p 宿主机端口:容器内端口(相当于外网对内网的端口映射)
docker ps
测试:
curl localhost:3344
进入nginx
docker exec -it nginx01 /bin/bash
查看nginx配置:
whereis nginx
进入nginx目录

tomcat:
docker pull tomcat:9.0
docker images
docker run -d -p 3355:8080 tomcat01 tomcat
docker exec -it tomcat /bin/bash 缺少linux命令,缺少webapps,web文件存在在webapps.dist文件夹下

es+kibana:

//可视化:
//portainer:docker图形化界面管理工具,提供一个面板操作
//docker run -d -p 8080:9000\

UnionFS联合文件系统
images分层进行(centos只包含基本内核(bootfs)和基本命令)
ubuntu
基础镜像(内核)【第一层】+python【第二层】+jdk【第三层】+Gcc【第四层】+…

commit镜像
docker commit 提交容器成为一个新的镜像
docker commit -a=“name” -m=“add ***” + 容器id + 镜像名:[TAG]

容器数据卷:

挂载数据目录,确保Docker内的数据和主机或者容器之间的数据进行同步(双向同步)

docker run -it -v 主机目录:容器内目录
通过docker inspect 容器id查看挂载
好处:在本地修改,容器内的数据可以自动同步

安装MySQL
docker search MySQL

docker pull mysql:5.7

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=passward --name mysql01 mysql:5.7

具名挂载和匿名挂载
匿名挂载:
-v 容器内路径
docker run -d -(-P随机映射端口)p --name nginx01 -v /ect/nginx nginx

查看所有volume的情况:
docker volume ls

具名挂载:
-v 卷名:容器内路径
查看这个卷:
docker volume inspect 卷名

所有docker内的容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/****/_data

可以通过具名挂载方便的找到一个卷,大多数情况下在使用的是“具名挂载”

-v 容器内路径  #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v /宿主机路径::容器内路径 #指定路径挂载

扩展:

docker run -d -p --name nginx01 -v juming_nginx:/etc/nginx:ro nginx

docker run -d -p --name nginx01 -v juming_nginx:/etc/nginx:rw nginx	

ro		只读
rw		可读可写

Dockerfile挂载卷:
Dockerfile就是一个用来构建Docker镜像的命令脚本

创建一个dockerfile文件,名字可以随机,建议Dockerfile
文件中的内容 指令大写 参数

RFROM centos

VOLUME [“volume01", "volume02"]		(挂载卷的第二种方式  匿名挂载方式)

CMD echo "_____end_____"

CMD /bin/bash

这里的每一个命令,就是镜像的一层

数据卷容器:(多个mysql同步数据)
实现容器内的数据(拷贝)共享:
docker run -it --name docker01 --volumes-from docker01 +容器名+版本(容器id)

多个mysql共享数据:
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=passward --name mysql01 mysql:5.7

docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=passward --name mysql02 --volumes-from mysql01 mysql:5.7

实现两个容器数据同步

DockerFIle:用来构建docker镜像的文件。命令参数脚本,定义一切步骤
构建步骤:
1,编写一个dockerfile文件
2,docker build构建成为一个镜像
3,docker run 运行镜像
4,docker push 发布镜像(DockerHub,阿里云镜像仓库)

很多官方镜像都是基础包,只有基础的运行环境。通常开发会搭建自己的镜像

构建过程:
1,每个保留关键字(指令)都必须是大写字母
2,执行从上到下顺序执行
3,#表示注释
4,每个指令都会创建一个新的镜像层,并且提交

DockerImages:通过Dockerfile构建镜像,最终发布和运行

Docker容器:运行环境,镜像运行起来提供服务

Dockerfile指令:
FROM #基础镜像,一切从这里开始
MAINTAINER #镜像是谁写的,姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD #步骤:tomcat镜像,这个tomcat压缩包,往镜像中添加内容,压缩包会自动解压
VOLUME #挂载的目录
WORKDIR #镜像的工作目录
EXPOST #保留端口配置
CMD #指定这个容器启动的时候要运行的命令。
E #指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD #当构建一个被继承Dockerfile 这个时候就会运行ONBUILD指令。触发指令
COPY #类似ADD, 将我们的文件拷贝到镜像中
ENV #构建的时候设置环境变量

Docker Hub中的镜像

docker history + 容器id 查看镜像生成的步骤

命令行追加命令,需要用

不能追加命令则是用CMD实现的

在centos上构建tomcat镜像

FROM centos
MAINTAINER yuluo***********@qq.com

COPY readme.txt /usr/local/readme.txt

ADD jdk-8u11-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.22.tar.gz /usr/local

RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0_11
ENV CLASSPATH J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAH?OME/lib/dt.jar:JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/localapache-tomcat-9.0.22
ENV CATALINA_BASH /usr/localapache-tomcat-9.0.22
ENV PATH P A T H : PATH: PATH:JAVA_HOME/bin" C A T A L I N A H O M E / l i b : CATALINA_HOME/lib: CATALINAH?OME/lib:CATALINA_BASH

EXPOSE 8080

CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh && tail -F /url/local/apache-tomcat-9.0.22/bin/logs/catalina.out

发布镜像到DockerHub
通过命令登录: docker login -u [用户名]

登录之后docker push
docker push 镜像名:[TAG]

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:51:09  更:2021-08-21 15:52:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:21:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码