系统时钟寄存器
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.2docker 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镜像