docker学习

#=### 声明 此笔记是根据网上视频教程做的 url https://www.bilibili.com/video/av49095718?p=24
在这里插入图片描述在这里插入图片描述

docker三要素

镜像 容器 仓库

镜像与容器的关系 镜像就好比操作系统window.iso 容器是 在电脑上安装后的操作系统 人可以使用的操作系统

镜像的crud

docker images 列出指定的镜像
docker images -a
docker images -qa列出镜像的id
在这里插入图片描述
docker pull tomcat 从repository中拉取镜像
docker search tomcat 查询仓库中的镜像 从国外网站上查询 但是下载是从配置的daemon.json文件路径下载
docker rmi -f tonmcat 删除指定镜像
docker rmi -f tomcat nginx 删除多个镜像
docker rmi -f $(docker images -q) 删除全部镜像 可以类比 delete from table_name where id in (select id from table_name)

容器的操作

查看docker下正在运行多少容器
docker ps 类比linux的 ps -ef | grep tomcat
在这里插入图片描述
docker run -it centos --name my_centos 以交互的方式运行 centos容器
exit 从centos中退出
在这里插入图片描述
ctrl+d 退出容器且关闭, docker ps 查看无
ctrl+p+q 退出容器但不关闭, docker ps 查看有
docker ps -l 显示上一个运行的容器 相对此时 容器是停止的
在这里插入图片描述
docker ps -a 当前运行的+历史运行的 === docker ps + docker ps -l
在这里插入图片描述
docker ps -n 3 上三次运行的显示 类似 docker ps -l 都是历史运行的
在这里插入图片描述
在这里插入图片描述
过去exit的如何启动
在这里插入图片描述
docker restart id 重启某个应用
docker stop id或者容器名 停止某个应用
docker kill id 强制关闭容器

docker rm id或者容器名 删除已经停止的容器
docker rm -f $(docker images -q) 一次性删除多个容器
docker ps -qa | xargs docker rm

以守护进程的方式启动

守护进程 :片面理解 后台进程
docker run -d centos 以后台的形式运行centos 通过docker ps 是无法查询其状态的
在这里插入图片描述

docker logs id 打印日志

在这里插入图片描述
在这里插入图片描述

查看容器内的进程

docker top id 查看某个容器内的进程 容器可以用top的原因是 容器是一个简易版的linux环境
在这里插入图片描述
docker inspect id 查看容器运行的内部细节
在这里插入图片描述

docker attach id 进入centos的终端

docker exec id ls -l 进入centos中执行ls -l
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从docker中拷贝到虚拟机中 实现持久化

[root@localhost ~]# docker attach 367364821b52
[root@367364821b52 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@367364821b52 /]# vi
[root@367364821b52 /]# vi hello
[root@367364821b52 /]# read escape sequence
[root@localhost ~]# docker cp 367364821b52:/hello /root
[root@localhost ~]# ll
total 12
-rw-------. 1 root root 2305 Nov 10 01:25 anaconda-ks.cfg
-rw-r–r--. 1 root root 16 Feb 2 22:21 hello
-rw-r–r--. 1 root root 2353 Nov 10 02:11 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 Nov 13 22:50 perl5
[root@localhost ~]# 在这里插入图片描述
在这里插入图片描述

数据卷

在这里插入图片描述
容器与虚拟机 实现多个文件的映射
在这里插入图片描述
[root@localhost ~]# docker run -it -v /cen_volume:/doc_volume centos
容器 exit start attach 后查看 卷还在
在这里插入图片描述
在这里插入图片描述

dockerfile 实现数据卷

1, vim vi myDockerFile 在本机建
2,

#继承centos
from  centos
#数据卷
volume ["/usb1","/usb2","/usb3"]
cmd echo "success"
cmd /bin/bash

3, docker build -f /opt/myDockerFile -t mycentos . 别忘了 最后一个 点
4,
在这里插入图片描述
5,查看对应本机的文件夹 docker inspect mycentos
在这里插入图片描述

容器与容器之间的volume继承(共享)

[root@localhost opt]# docker run -it --name object mycentos 启动一个容器
[root@localhost ~]# docker run -it --name sun --volumes-from object mycentos 启动另一个容器
实现容器卷的继承
注意:容器与容器间的数据卷比较特殊 所有容器共通数据卷 只有最后一个容器退出时 数据卷才销毁 特性 父通子 子通父

dockerfile命令

在这里插入图片描述
在这里插入图片描述
dcokerfile文件关键字的用法
[root@GZY opt]# cat myDockerFile
#继承最原始的组件
from centos
#数据卷
volume ["/usb1","/usb2","/usb3"]
#声明一个变量 引用path用 $path
ENV path /etc/

#启动此容器时的光标所在目录
WORKDIR $path
#运行一些命令
cmd echo “success”
#运行linux的命令
run yum install -y net-tools
#触发器 当子类继承这个容器时 会触发命令

onbuild run echo “这是一个触发器”

cmd /bin/bash
[root@GZY opt]#

自制tomcat

配置文件
在opt下 有以下文件

[root@GZY tomcat]# ll
total 158896
drwxr-xr-x. 9 root root       220 Feb 25 21:27 apache-tomcat-7.0.96
-rwxrw-rw-. 1 root root   9167727 Sep 15 16:11 apache-tomcat-7.0.96.tar.gz
-rw-r--r--. 1 root root       745 Feb 25 22:03 Dockerfile
drwxr-xr-x. 8   10  143       233 Apr 11  2015 jdk1.7.0_80
-rwxrw-rw-. 1 root root 153530841 Dec 24  2017 jdk-7u80-linux-x64.tar.gz
-rw-r--r--. 1 root root         0 Feb 25 21:04 tomcat.txt
[root@GZY tomcat]# 

docker文件

```
[root@GZY tomcat]# cat Dockerfile 

from centos
copy tomcat.txt /usr/local/cincontainer.txt

add apache-tomcat-7.0.96.tar.gz /usr/local
add jdk-7u80-linux-x64.tar.gz /usr/local

run yum install vim -y

ENV MYPATH /usr/local

workdir $MYPATH

#设置环境变量

ENV JAVA_HOME /usr/local/jdk1.7.0_80
ENV CLASSPATH J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
ENV catalina_home /usr/local/apache-tomcat-7.0.96
ENV catalina_base /usr/local/apache-tomcat-7.0.96
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: catalinahome/lib:catalina_home/bin

EXPOSE 8080

#设置启动命令
ENTRYPOINT ["/usr/local/apache-tomcat-7.0.96/bin/catalina.sh",“run”]
#cmd /usr/local/apache-tomcat-7.0.96/bin/startup.sh && tail -f /usr/local/apache-tomcat-7.0.96/bin/catalina.out
[root@GZY tomcat]#

mysql

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述redis
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值