首页 > 编程知识 正文

dockerfile命令详解,django docker

时间:2023-05-03 05:10:45 阅读:32488 作者:4738

系统时钟寄存器

docker版本

杜克基信息

-镜像命令-

显示dockerimagesdocker镜像

-a --all列出所有镜像-q --quiet仅显示镜像的id -aq显示所有镜像id

镜像搜索dockersearch(mysql )--filter=STARS=3000 )查找所有MySQL集合数超过3000的镜像

下载镜像docker pull镜像名称[:tag]

删除docker rmi -f镜像的存储库或IMAGE ID IMAGE ID IMAGE ID IMAGE ID (可以同时删除多个而不需要空间) )。

文档管理器RMI-f $ (文档管理器images-AQ )

-容器命令-

基于镜像的坞站拉动中心

docker run [可选参数] images

docker ps显示当前正在运行的容器

docker ps -a (英语) all :当前运行的容器将取出过去运行的容器

-n=? 显示最近创建的容器

-q仅显示容器的编号

退出油箱

exit停止容器并退出

Ctrl P Q容器不停止退出

删除容器

docker rm删除指定的容器id。 无法删除正在运行的容器。 如果要强制删除,请运行rm -f命令

docker rm -f $(docker ps -aq )删除所有容器

管道符号,

docker ps -a -q|xargs docker rm搜索所有容器id并递归删除它们

开始和停止容器操作

docker kill容器id强制停止当前容器

总结docker run -it centos /mldzp/bash (控制台)

-常用的其他命令(小步骤) -

后台启动容器

坞站运行- d中心

查看日志docker logs-f-t-- tail 1060 d0 B4 f 26 a 73 (容器id ) docker logs -tf 0cabc93a751c

坞站运行- d centos/mld ZP/bash-c ' while true; do echo crf; 步骤1; done '

查看容器中的进程信息

docker顶容器id

查看容器元数据

docker inspect 0cabc93a751c (容器id ) dockerimageinspectredis 3360 latest

进入当前正在运行的容器

docker exec-it0 cabc 93 a 751 c/mld ZP/bash (进入容器后戴上新终端令人陶醉的太阳镜操作((常用) ) ) ) )

docker attach 0cabc93a751c (容器进入正在运行的终端,并且不会启动新进程) )。

从容器内向主机复制文件----- "从主机向容器的复制通过卷装载(数据卷)实现

docker cp容器id :容器内路径当前主机路径docker CPA 5144308 d 04 d :/home/TTT.Java/home复制命令不需要写文件名,而是写在目录中

复制是一个手动过程,将来可以使用-V卷技术进行自动化(穿透主机和容器的/home目录)。

使用docker配置环境

1、引入nginx

docker run-d---- name nginx 01-p 3344336080 nginx

还可以访问curl localhost:3344现实电脑

2、引进tomcat

docker run-it---- RM Tomcat :9.0通常用于测试,如果已使用,则将其删除

docker pull tomcat:9.0

docker run-d---- name Tomcat 01-p 335533608080 Tomcat (使用最新版本,无镜像时下载并运行) )。

cp -r webapps.dist/* webapps

3、引进ES Kibana

docker run-- d-- nameelasticsearch---netsomenetwork---p 920033609200

-p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
docker stats 查看CPU的状态
curl localhost:9200
赶紧关闭,增加内存限制,修改配置文件, -e 环境配置修改
docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2

Portainer可视化面板安装
docker run -d -p 8088:9000
--restart=always -v /var/run/docker.sock:/var/run/doc ker.sock --privileged=true portainer/portainer

Rancher(CI/CD 持续集成/持续部署)(由于Portainer)

docker commit 提交容器成为一个新的副本
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]   将当前镜像提交到本地镜像库中

Docker精髓:
容器数据卷   DockerFile   Docker 网络
企业实战 Docker Compose   Docker Swarm       
CI/CD jenkins   流水线
docker run -it -v /home/ceshi:/home centos /mldzp/bash

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

查看所有的volume的情况
docker volume ls
-v 跟卷名:容器内路径 具名挂载    -v跟容器内路径 匿名挂载
docker volume inspect 卷id
-v 容器内路径[:ro|:rw]  ro:readonly  路径只能宿主机操作    rw:readwrite

DockerFile    就是构建docker镜像的构建文件
docker build -f dockerfile1 -t ks/centos .
-----------------------------------------------
FROM centos

VOLUME ["volume01","volume02"]

CMD echo "---end___"
CMD /mldzp/bash
-----------------------------------------------

数据卷容器

多个mysql同步数据   --volumes-from   父容器对应数据卷容器
docker run -it --name docker02 --volumes-from docker01 ks/centos

diff 查看docker容器的变化
docker history 镜像id   查看该镜像的形成历史

-----------------------------------------------
FROM centos
MAINTAINER crf<email>

COPY readme.txt /usr/local/readme.txt
ADD jdk-8u311-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.54.tar.gz /usr/local/
RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0_311
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.54
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.54
ENV PATH $PATH:$JAVA_HOME/mldzp:$CATALINA_HOME/lib:$CATALINA_HOME/mldzp

EXPOSE 8080

CMD /usr/local/apache-tomcat-9.0.54/mldzp/startup.sh && tail -F /usr/local/apache-tomcat-9.0.54/mldzp/logs/catalina.out
------------------------------------------------

docker build -t diy . (.表示当前目录)
docker run -d -p 9090:8080 --name crfk -v /home/test:/usr/local/apache-tomcat-9.0.54/webapps/test -v /home/logs:/usr/local/apache-tomcat-9.0.54/logs diy

上传Dockerhub或阿里云容器镜像仓库镜像名字必须是"命名空间/"开头
docker login -u chengruifeng 
@cRF990419
# docker login --username=chengrf registry.cn-hangzhou.aliyuncs.com
docker login --username=chengrf registry.cn-beijing.aliyuncs.com   a12345678(临时密码)
docker tag 938b57d64674 registry.cn-hangzhou.aliyuncs.com/chengruifeng/chengruifeng-mysql:1.0

Docker 网络
Docker Compose 容器编排    Docker Swarm   集群部署     CI/CD之Jenkins    以后再学~~
Docker0
网卡docker0,桥接模式,使用的技术是veth-pair技术
容器互联  --link(不建议使用了)
docker run -d -P --name tomcat03 --link tomcat02 tomcat

docker network ls(获得network id)    -->   docker network inspect (network id/ name)
网络模式
bridge : 桥接  docker(默认)
none : 不配置网络    
host : 和宿主机共享网络
container : 容器内网络连通(用的少,局限很大)
docker run -d -P --name tomcat01 --net bridge tomcat    (默认带--net bridge,而 bridge 就是docker0)

docker network create --driver bridge(默认)  --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
run的时候使用 --net 来调用该网络,而不走docker0
不使用 --link  容器名字之间就可以 ping 通 

网络连通    docker network connect mynet tomcat01   使 tomcat01 增加一个在mynet网络中的ip地址
实战: 
部署Redis集群       分片+高可用+负载均衡
SpringBoot微服务打包Docker镜像  Dockerfile + 微服务jar包   ->   build镜像   ->   run镜像

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。