doker基础知识

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:doker

doker学习笔记


提示:以下是本篇文章正文内容,下面案例可供参考

doker基础知识

一、安装docker

安装前卸载旧版本

yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine

仓库安装

yum install -y yum-utils

设置镜像仓库

sudo yum-config-manager
–add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新软件包索引
yum makecache fast

安装最新的doker引擎
yum install docker-ce docker-ce-cli containerd.io

启动docker
systemctl start docker

测试是否启动
docker version

二、镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://81cehvik.mirror.aliyuncs.com”]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

三、docker命令

docker version 显示docker版本信息
docker info 显示docker的系统信息(包括镜像和容器的容器)

命令官网地址:https://docs.docker.com/reference/

镜像

docker search 搜索

docker pull -a 版本 下载镜像

docker rmi -f (id) 删除指定镜像
docker rmi -f s$(docker images -aq) 删除全部镜像

容器

docker run
参数
–name 容器名字
-d 后台运行
-it 交互运行
-P 指定容器端口
-p 随机端口

docker run -it centos /bin/bash 启动并进入

exit 退出容器并停止
ctcl +p+q不停止退出

docer ps -aq运行中容器
-a 当前正在运行的镜像 +历史运行
-n 显示最近创建的容器
-q 只显示容器的编号

删除容器
docker rm +id 删除指定容器,不能删除正在运行的容器
docker rm -f s$(docker ps -aq) 删除全部容器

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

常用命令

后台启动
docker run -d

查看日志
docker logs -tf --tail 10 指定查看行数

查看进程信息
docker top

查看镜像元数据
docker inspect

进入当前正在运行的容器
docker exec -it id /bin/bash 打开新的命令行

docker attach id 正在执行的代码

从容器拷贝文件到主机
docker cp

运行容器
docker run -d --name nginx01 -p 3344:80 nginx

进入容器
docker exec -it nginx01 /bin/bash

测试端口
curl localhost:9200

docker stats 查看cpu状态

portainer 下载
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

拷贝命令
cp -r webapps.dist/* webapps

commit镜像
docker commit 提交新的镜像
dockers commit -m=“提交描述信息” -a=“作者” 容器id 目标镜像名:tag
例子: docker commit -m=“add app” -a=“oyh” 3b339ce267e7 tomcat1.0

四、容器数据卷 -v

docker run -it -v 主机目录:容器目录
例子:docker run -it -v /home/test/:/home centos /bin/bash

docker inspect 容器id 查看容器详细信息(注意:需要在主机执行)

docker volume ls 查看卷的所有情况

docker volume inspect 卷名 查看卷的详细描述

所有匿名卷都在 /var/lib docker/volumes/***/_data

数据卷容器 --volumes-from

例子:docker run -it --name docker02 --volumes-from docker01 oyh/centos

五、dockerfile 用来构建docker的构建文件

例子:
docker build -f /home/dockertest/dockerfile1 -t dockerfile/centos01 .
(注意后面的.一定要有)
-f 宿主机文件
-t 镜像名字

脚本例子:
FROM centos
VOLUME [“volume01”,”volume02”]
CMD echo ”end end”
CMD /bin/bash

  1. docker 构建
    docker 指令
    FROM 基础镜像
    MAINTAINER 谁写的 姓名+邮箱
    RUN 运行的命令
    ADD 加入内容 (加入tomcat等)
    WORKDIR 镜像挂载目录
    VOLUME 挂载的目录
    EXPOSE 暴露端口
    CMD 容器启动时候运行的命令,替换命令
    ENTRYPOINT 容器启动时候运行的命令,可以追加命令
    ONBUILD 触发指令
    COPY 将文件拷贝到镜像中
    ENV 构建的时候设置环境变量

实战
FROM scratch 百分之90%的镜像都是从这个构建处理的(基础镜像)

代码:

FROM centos
MAINTAINER oyh<1435701818@qq.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install ifconfig
RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH
CMD echo "成功"
CMD /bin/bash

生产镜像
docker build
-t 镜像名:[版本号]
-f文件路径

docker build -f only-centos01 -t mycentos:0.1 .

制作tomcat

  1. 制作tomcat,准备tomcat文件,jdk文件

制作代码:

FROM centos
MAINTAINER oyh<1435701818@qq.com>
COPY readme.txt  /usr/local/readme.txt

ADD jdkname  /usr/local/
ADD tomcatname /usr/local/

RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0_11
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.22
ENV PATH $PATH:JAVA_HOME/bin:$CATALINA_HOME/lib:$ CATALINA_HOME/bin

EXPOSE  8080

CMD /usr/local/ apache-tomcat-9.0.22/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.22/bin/logs/Catalina.out
构建镜像

docker build -f mytomcat -t diytomcat .

启动容器,初始化容器

docker run -d -p 9090:8080 --name diytomcat01
-v /home/build/tomcat/test/ :/usr/local/apache-tomcat-9.0.22/webapps/test
-v /home/build/tomcat/logs :/usr/local/apache-tomcat-9.0.22/logs diytomcat

运行容器
docker exec -it 容器id /bin/bash

发布镜像

dockerHub
登录 https://hub.docker.com/
docker login -u 用户名 -p 密码

发布阿里云
  1. 登录阿里云
    docker login --username=980419欧 registry.cn-hangzhou.aliyuncs.com

  2. 找到容器镜像服务

  3. 创建命名空间
    在这里插入图片描述

提交镜像
docker push registry.cn-hangzhou.aliyuncs.com/dockerfile-oyh/dokerfile:[镜像版本号]~

六、docker网络

实战
创建容器
docker run -d -P --name mytomcat tomcat

docker exec -it

原理:我们每启动一个dockers容器。docker都会分配一个ip 给容器,就会一个网卡docker0 ,桥接模式。使用的evth-pair

evth-pair就是一对虚拟设备接口,都是成对出现,一段连接协议,一段彼此连接

–link 可以连通容器网络连接,单向网络 不建议使用

doker network 查看网络

自定义网络
在这里插入图片描述

网络模式
bridge :桥接模式(默认网络模式)
none :不配置网络
host:和宿主机共享网络
container:容器网络连接(用的少,局限性大)

自定义网络
docker network create --subnet 192.168.0.0/16 –gateway 192.168.0.1 mynet
在这里插入图片描述

docker network connect 容器联通自定义网络 mynet
语法:docker network connect mynet tomcat01 联通自定义网络mynet到tomcat01容器的网络

七、 练习

脚本配置6个redis
在这里插入图片描述

启动

在这里插入图片描述


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值