docker --version # 显示docker的版本信息
docker info # 显示docker的系统信息
docker 命令 --help # 显示帮助命令
# 搜索镜像
docker search mysql
# 条件过滤搜索结果
docker search --filter=STARS=5000
image-20200906131527917
「列表解释」
# 默认拉取最新的镜像
docker pull mysql
# 指定版本下载
docker pull mysql:5.7
# 查看所有镜像信息
docker images -a
# 查看所有的镜像id
docker images -aq
image-20200906130452865
「列表解释」
2.4 删除镜像
#删除指定id的镜像
docker rmi 镜像id
docker rmi 镜像id 镜像id 镜像id 镜像id
#删除指定名称的镜像
docker rmi mysql:5.7
#迭代删除所有的镜像
docker rmi -f $(docker images -aq)
docker run [可选参数] image
# 运行实例
docker run --name=mycat -d -p 8080:8080 tomcat
# 用完即删
docker run -it --rm tomcat
# 指定环境变量(实例)
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2
「参数说明」
# 运行一个centos并进入到容器里面
docker run -it centos /bin/bash
# 退出容器
exit
# 查看正在运行中的容器
docker ps
# 查看所有容器
docker ps -a
exit # 直接容器停止并退出
Ctrl + P + Q # 容器退出不停止
# 删除指定容器
docker rm bde00bc086cf
# 强制删除运行中的容器
docker rm -f bde00bc086cf
# 迭代删除全部的容器
docker rm -f $(docker ps -aq)
# 启动容器
docker start 容器id
# 重启容器
docker restart 容器id
# 停止容器
docker stop 容器id
# 强制杀死容器
docker kill 容器id
# 进入到指定容器内部进行修改 开启一个新的终端
docker exec -it 0cd4d9d94de2 /bin/bash
# 进入到正在执行中的终端
docker attach 容器id
docker cp 容器id:容器内文件的路径 宿主机路径
#实例
docker cp 0cd4d9d94de2:/Test.java /Test.java
「查看日志命令」
# 查看容器运行产生的日志
docker logs -ft --tail 10 容器id
「参数解析:」
「查看进程」
# 查看cpu等信息
docker top 0cd4d9d94de2
# 查看容器元信息
docker inspect 容器id
# 安装可视化面板 portainer (数据卷路径不可改变)
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
image-20200906161505532
# 提交一个容器为一个镜像(将容器打包)
docker commit [可选参数] 服务id 自定义镜像名称[:版本标签]
# 示例代码提交
docker commit -a="huangfu" -m="增加了主页" 19329ae6df90 diytomcat:1.0
「参数解释:」
# 关联数据卷
docker run [可选参数] -v /主机路径/:/容器路径/ 镜像名称
# 关联数据卷的实例命令
docker run -d -p 8080:8080 --name mytomcat -v /home/tomcat/webapps/:/usr/local/tomcat/webapps tomcat
docker run -d -p 3366:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
「命令解析:」
# 创建一个Dockerfile
vim Dockerfile
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "-----end---"
CMD /bin/bash
:x
# 构建docker镜像
# -f dockerfile的路径
# -t 生成的镜像名称
# . 以当前路径为上下文打包
docker build -f /home/docker-volom/Dockerfile -t huangfu/centos:1.0 .
# 构建基本命令
docker build [OPTIONS] PATH | URL | -
#
表示注释image-20200906203902072
# 构建一个具有复杂命令行的centos
vim Dockerfile
# 镜像继承自centos
FROM centos
# 作者信息
MAINTAINER huangfu<huangfusuper@163.com>
# 设置环境变量
ENV MYPATH /usr/local
# 设置工作目录
WORKDIR $MYPATH
# 执行命令安装指令
RUN yum -y install vim
RUN yum -y install net-tools
# 暴露端口
EXPOSE 80
# 执行一些指令
CMD echo "-------end------"
CMD echo $MYPATH
CMD /bin/bash
:x
# 构建镜像
docker build -f /home/docker-volom/Dockerfile -t huangfu/diycentos:1.0 .
# 查看所有的网络模式
docker network ls
# 创建一个网络
docker network create [OPTIONS] NETWORK
# 创建一个mynet
# create 创建
# driver 使用的网络模式
# subnet 子网掩码
# gateway 网关
# mynety 自定义的名称
docker netywork create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynety
docker run -d --net mynety --name tom01 tomcat
docker run -d --net mynety --name tom02 tomcat
# 进入到tom02
docker exec -it 7d75a637a90b865fe70259bd4e0b3f5c95133dc65693b05abaf078d31a362529 /bin/bash
# 结果是互通的
ping tom01
image-20200906213345122
# 把自定义网络和容器打通 容器一个容器两个ip
# 把不在该网络的容器加入当前网络
docker network connect 自定义网络 容器
FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
mkdir idea
cd idea
# 将 Dockerfile与jar包发送到idea目录
# 构建镜像
docker build -t huangfutest:1.0 .
# 后面运行不说了