天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
Docker命令
一、Docker系统命令:
1. 启动
systemctl start docker
2. 停止
systemctl stop docker
3. 重启
systemctl restart docker
4. 自启
设置docker开机自启
systemctl enable docker
5. 状态查看
查看docker运行状态,绿色表示运行正常
systemctl status docker
6. 帮助命令:
直接输入docker也可以呼出docker命令的用法介绍
docker
命令提示-查看指定COMMAND命令的详细用法
docker COMMAND --help
如启动命令则可使用
docker run --help
二、Docker镜像命令:
1. 搜索镜像
在镜像仓库中搜索镜像,可通过镜像名称或关键字来搜索镜像
docker search 关键字
2. 拉取镜像
:tag
表示镜像版本,不指定默认最新版本latest
docker pull 镜像名
#或
docker pull 镜像名:tag
3. 查看镜像列表
查看本地所有镜像
docker images
4. 单独搜索镜像
docker images 镜像名
5. 获取镜像元数据
获取镜像的详细信息
docker inspect 镜像ID
6. 删除镜像
rm
是remove的缩写
i
是image镜像的简写
-f
是强制
-a
意为显示全部镜像
-q
意为只显示ID
6.1 强制删除一个
删除指定版本号的镜像
docker rmi -f 镜像名:tag
删除版本号为latest的镜像,此时不用加tag版本
docker rmi -f 镜像名/镜像ID
6.2 删除多个
镜像名或镜像ID用空格隔开
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
6.3 删除全部镜像
docker rmi -f $(docker images -aq)
三、Docker容器命令:
-a
显示所有容器(停止的和运行的)
-q
只显示容器ID
--name
自定义容器名,不指定则自动命名
-i
以交互模式运行容器
-t
分配一个伪终端(命令行),通常-it组合使用
-p
指定端口映射,将主机端口映射到容器内端口,可多个-p实现多个端口指定
-d
后台运行容器(守护式运行)并返回容器ID
-v
指定挂载主机目录到容器目录,文件也可以挂载,挂载后在宿主机的目录或者文件会和容器中的同步,可使用多个-v来实现多个挂载。挂载后的文件或目录默认为rw读写模式,可指定ro表示只读
--privileged=true
给容器赋予宿主机的root权限
--restart always
设置容器自启动
/bin/bash
交互路径
1. 运行容器
语法(反斜杠\为换行符)
docker run --name 容器别名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录 镜像ID/镜像名称:tag
如,运行tomcat
给容器起名为mytomcat
交互式运行并开启一个伪终端
宿主机8888端口映射到容器的8080
后台守护式运行
将宿主机目录/mytomcat/tomcat挂载到容器目录/usr/local/tomcat且目录权限设为只读
容器的基础镜像为tomcat:latest
docker run --name mytomcat -it -p 8888:8080 -d -v /mytomcat/tomcat/webapps:/usr/local/tomcat/webapps:ro tomcat:latest
ro
表示readOnly只读,不加默认为rw
表示readWrite读写
2. 查看容器
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
查看所有容器,只显示ID
docker ps -aq
//等于
docker ps -a -q
3. 启动容器
docker start 容器ID/容器名
4. 停止容器
docker stop 容器名/容器ID
5. 访问容器
开启一个交互式终端,在容器中执行命令
docker exec -it 容器ID/容器名称 /bin/bash
8. 退出容器
表示退出并关闭容器
exit 或者 ctrl+p+q
6. 文件拷贝
将主机中的文件拷贝到容器中
docker cp 主机中的文件全路径 容器ID/容器名:容器路径
将容器中的文件拷贝到主机中
docker cp 容器ID/容器名:容器中的文件全路径 主机路径
7. 容器日志
查看容器的日志
docker logs 容器ID/容器名
8. 容器信息
查看容器的详细信息
docker inspect 容器ID
9. 删除容器
先停止容器 再删除容器
docker stop 容器名/容器ID
9.1 删除一个容器
docker rm -f 容器名/容器ID
9.2 删除多个容器
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
9.3 删除全部容器
docker rm -f $(docker ps -aq)
10. 挂载目录或文件
通过-v来将宿主机的目录或文件挂载到容器中,两边挂载后实现同步,修改了宿主机对应的内容就等于修改了容器中的内容。
-v 宿主机目录或文件 容器ID:容器目录或文件
#可挂载多个目录
-v 宿主机目录1 容器ID:容器目录1
-v 宿主机目录2 容器ID:容器目录2
#还可指定目录或文件权限,默认为rw读写,也可指定为ro只读
-v 宿主机目录3 容器ID:容器目录3:ro
注:这个机制目前不了解内部逻辑,但猜想应该是将宿主机同步到容器,因为之前挂载过一个容器目录,目录中有其他文件夹及文件,挂载后宿主机中文件是空的,容器中也变成空的了
11. 服务器与容器端口映射
将容器内部端口与docker宿主机(安装docker的机器)端口进行映射,通过外部访问宿主机端口就可以访问到docker容器的端口
-p 宿主机端口:容器端口