Docker常用命令
2021-09-30 08:58:41 1 举报
AI智能生成
Docker常用命令
作者其他创作
大纲/内容
镜像相关
docker search XXX
搜索镜像
docker pull XXX:1.0.0
拉取镜像
docker images
查看所有镜像
docker images -q
查看所有镜像的image id
docker rmi XXX
删除镜像
docker rmi -f $(docker images -aq)
删除所有镜像
docker commit -m="提交的描述信息" -a="作者" 容器id 新创建的镜像名:[TAG]
提交新镜像,创建新镜像
docker commit -a="slz" -m="test" nginx test-nginx:1.0
docker history XXX
查看docker镜像的历史操作
容器相关
查看容器
docker ps
查看正在运行的容器
docker ps -a
查看所有容器
docker ps -aq
查看所有容器的容器id
操作容器
docker start XXX
启动容器id或容器名XXX的容器
docker stop XXX
停止容器id或容器名XXX的容器
docker restart XXX
重新启动容器id或容器名XXX的容器
docker rm XXX
删除XXX容器
docker rm -f $(docker ps -aq)
删除所有容器
docker rm -f -v XXX
强制删除容器
docker logs XXX
查看容器的日志
docker logs -f XXX
持续输出日志
docker exec -it XXX bash
进入容器内部
docker inspect XXX
容器的详情
docker cp XXX:/opt/testnew/file.txt /opt/test/
从容器拷贝文件到宿主机
docker cp /opt/test/file.txt XXX:/opt/testnew/
从宿主机拷贝文件到容器
运行容器
docker run -d --name XXX -p 3344:80 -e ES_JAVA_OPTS="-Xms64m -Xmx512m" nginx
运行一个后台XXX的nginx容器,端口为3344对应nginx的80端口, -e环境配置 -d 后台运行
ctrl+Q+P退出正在运行的容器,容器不会关闭
docker stats
查看容器的运行状态
数据卷
目录挂载
docker run -it -v 主机目录:容器内目录
docker run -p 3316:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
挂载mysql的日志、数据、配置,设置密码
卷挂载
docker volume create –name XXX
创建名字为XXX的卷
docker inspect XXX
查看XXX卷的详情
可以查看到卷的具体位置
docker volume rm XXX
删除XXX卷
docker volume ls
查看所有的卷
查看卷相关信息
挂载创建的mysql-volume卷
数据卷容器
如果docker01删除了,docker02依旧可以访问volume的数据卷,所以容器内的数据卷是拷贝的关系
DockerFile
Dockerfile指令
docker build -f XXX -t docker-test/testcentos:1.0 .
XXX的dockerfile文件内容
常见命令
扩展
根据XXX的dockerFlie创建一个新的testcentos的镜像
注意:最后要有一个空格加.
注意:最后要有一个空格加.
具体执行
CentOs的dockerflile
自定义的文件
Dockerfile为官方指定文件名称,build时可以不用加-f
jdk+tomcat自定义镜像的dockerfile文件内容
Push
docker login -u XXX
登录DockerHub
docker push XXX
提交XXX的镜像到DockerHub
latest的Tag不能发布,需要指定版本号,用tag命令处理后,再push
打jar包镜像
dockerfile内容
将dockerfile和jar包拷贝到linux上,然后build镜像
启动
网络
查看网络命令
docker network ls
查看所有的网络列表
bridge:桥接
none:不配置网络
host:和宿主机共享网络
none:不配置网络
host:和宿主机共享网络
docker network inspect XXX
查看XXX网络id的详细信息
理解docker0
docker网络,没有启动docker容器的网络情况
启动了2个docker容器后的网络情况,同过evth-pair充当一个桥梁,连接各种虚拟网络设备。 docker容器间是可以ping通的
docker间通信的原理
不支持容器名连接访问
自定义网络
支持容器名连接访问
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
自定义创建桥接的mynet名称的网络
docker run -d -P tomcat01 --net mynet tomcat
根据自定义网络mynet,创建容器
连通网络
将一个外部的容器加入到自定义的网络中
docker network connect mynet tomcat-other
将tomcat-other容器加入到mynet网络中
一个容器两个ip地址
compose
https://docs.docker.com/compose/gettingstarted/
https://docs.docker.com/compose/compose-file/compose-file-v3/#depends_on
0 条评论
下一页
为你推荐
查看更多