3. Docker学习之路 —— Docker常用命令

Docker学习之路 —— Docker常用命令

      • 1. Docker系统级命令
      • 2. Docker镜像命令
      • 3. Docker容器命令
      • 4. Docker网络
      • 5. Docker其它常用命令
      • 6. 命令练习一(Nginx)
          • ① 搜索nginx(为了确认nginx在docker仓库中是否存在)
          • ② 安装nginx镜像
          • ③ 后台运行nginx镜像生成容器,容器命名为nginx01,
          • ④ 进入nginx容器
          • ⑤ 退出容器
          • ⑥ 关闭nginx容器
          • ⑦ 删除容器
          • ⑧ 删除nginx镜像
      • 7. 命令练习二(Tomcat9.0,测试,容器退出即删)
          • ① 直接运行tomcat镜像,容器退出即删除,镜像会保留通用部分层,需要手动删除镜像,一般用于测试使用。
          • ② 注意问题

1. Docker系统级命令

## 启动/重启Docker
systemctl start/restart docker
service docker start/restart

## 关闭Docker
systemctl stop docker
service docker stop

## Docker版本信息
docker version

## Docker更详细的信息,包括版本信息
docker info

## 帮助信息
docker help
docker COMMAND --help

2. Docker镜像命令

## 查看所有本地主机上的所有镜像
## --all / -a:显示所有镜像
## --quiet / -q: 只显示镜像ID
docker images

## Docker在仓库中搜索镜像
## --filter / -f:过滤查询:-f=STARS=3000
docker search [OPTIONS] 镜像名称

## 下载镜像
## -a:下载所有版本镜像
## :TAG:指定版本,若不指定,则下载latest最新版本。
docker pull [OPTIONS] 镜像名称[:TAG]

## 删除镜像 除(多个镜像使用空格分割)
## -f:强制删除
## 根据镜像ID删
docker rmi -f 镜像ID1 镜像ID2
## 根据镜像名称加版本删除
docker rmi -f 镜像名称:版本(默认latest)
## 删除所有镜像(骚操作)
docker rmi -f $(docker images -aq)

## 从容器创建一个新镜像
## -a="作者"
## -m="描述"
## -p:暂停运行容器后再提交
## -c:使用Dockerfile指令来创建镜像
docker commit [OPTIONS] 容器ID 镜像名称:TAG  

## 将指定镜像保存成 tar 归档文件
docker save -o tar文件路径

## 导入使用 docker save 命令导出的镜像
docker load -i tar文件路径

## 查看镜像构建历史
docker history 镜像ID/镜像名称:TAG 

3. Docker容器命令

## 运行镜像为容器
## --name="唯一别名":容器命名,用于区分容器
## -d:后台方式运行,相当于nohup。问题:docker容器没有前台进程执行,会自行退出,所以可以配合-it使用
## -it:使用交互方式运行,并且进入容器查看信息
## --rm:容器退出后自动删除(一般用于测试)
## -p: 主机端口:容器端口:宿主机端口映射容器端口,访问宿主机端口即可。
## -p:容器端口:指定容器端口
## -P:随机端口
## -v:宿主机目录:容器目录:权限 镜像ID/名称:数据卷指定路径挂载
## -v:卷名:容器目录:权限 镜像ID/名称:数据卷具名名挂载(/var/lib/docker/volumes/卷名)
## -v:容器目录:权限 镜像ID/名称:数据卷匿名挂载
## --volumes-from:容器ID/容器名称:继承容器的数据卷(可多个)
## -e:配置容器参数,例如Java程序:-e JAVA_OPTS="-Xms=64m,-Xmx=512m"
## --link:使前面的容器可以ping通后面的容器(反向则不行),例如:tomcat01 --link tomcat02
docker run [OPTIONS] 镜像名称

## 容器停止并退出
exit

## 容器不停止并退出
Ctrl + P + Q

## 查看运行中的容器
## -a:可以查看所有容器(包括历史容器和运行中的容器)
## -n=数字:显示多少条容器
## -q:只显示容器ID
docker ps [OPTIONS]

## 查看容器资源占用情况
## 查看所有容器的资源占用
docker stats
## 查看指定容器的资源占用
docker stats 容器ID

## 查看容器中的进程信息
docker top 容器ID

## 查看容器的元数据
docker inspect 容器ID

## 查看容器数据卷的元数据
docker volumes inspect 数据卷ID/数据卷名称

## 进入正在运行的容器
## 方式一:进入容器并打开新的终端(常用)
docker exce -it 容器ID 
## 方式二:进入容器并打开正在运行的终端
docker attach 容器ID

## 将容器内文件复制到宿主机
docker cp 容器ID:容器内路径 宿主机路径

## 删除容器
## -f:强制删除
## 根据容器ID删除(不能删除运行中的,需要加-f参数)
docker rm [OPTIONS] 容器ID
## 删除所有容器(不能删除运行中的,需要加-f参数)
docker rm [OPTIONS] $(docker ps -aq)

## 启动/重启容器
docker start 容器ID
docker restart 容器ID

## 停止容器
docker stop 容器ID
## 强制停止容器
docker kill 容器ID

4. Docker网络

## 将容器连接到网络
docker network connect [OPTIONS] 网络名称 容器ID/容器名称

## 创建新的Docker网络。默认情况下,在Windows上会采用NAT驱动,在Linux 上会采用Bridge 驱动。可以使用 -d 参数指定驱动(网络类型)。
docker network create

## 断开容器的网络
docker network disconnect 容器ID

## 列出Docker主机上的所有Docker网络
docker network ls

## 删除Docker主机上所有未使用的网络
docker network prune

## 删除Docker的指定网络
docker network rm

5. Docker其它常用命令

## 查看日志
## -t: 显示时间戳
## -f: 跟随打印日志
## --tail 行数:显示多少行
docker logs [OPTIONS] 容器ID

## 登录
docker login 仓库地址(不指定,则默认https://registry.hub.docker.com/) -u 用户名 -p 密码

## 退出登录
docker logout 仓库地址(不指定,则默认https://registry.hub.docker.com/)

## 发布镜像
docker push DockerHub的用户名/镜像ID

注: 关闭Docker时警告:Stopping docker.service, but it can still be activated by:docker.socket怎么解决?

原因分析:这是因为除了docker.service单元文件,还有一个docker.socket单元文件,docker.socket这是用于套接字激活。该警告意味着:如果你试图连接到docker socket,而docker服务没有运行,系统将自动启动docker。

解决方法(关闭Docker socket):sudo systemctl stop docker.socket

建议:其实这是个挺人性化的设计,知道意思后,就不想采取什么干预了。

6. 命令练习一(Nginx)

① 搜索nginx(为了确认nginx在docker仓库中是否存在)
docker search nginx
② 安装nginx镜像
docker pull nginx
③ 后台运行nginx镜像生成容器,容器命名为nginx01,
## 启动后就可以访问IP:8080,进入nginx首页
docker run -d --name nginx01 -p:8080:80 镜像ID/镜像名称:TAG
④ 进入nginx容器
docker exec -it nginx01 /bin/bash
⑤ 退出容器
## 退出容器
exit
⑥ 关闭nginx容器
docker stop 容器ID
## 或
docker kill 容器ID
⑦ 删除容器
docker rm 容器ID
⑧ 删除nginx镜像
docker rmi -f 镜像ID
## docker images存在image时,却无法删除怎么办?
cd /var/lib/docker/image/overlay2/imagedb/content/sha256
## 找到对应镜像删除即可
rm -rf xxxxxx

7. 命令练习二(Tomcat9.0,测试,容器退出即删)

① 直接运行tomcat镜像,容器退出即删除,镜像会保留通用部分层,需要手动删除镜像,一般用于测试使用。
docker run -it --rm -p 3443:8080 tomcat:9.0
② 注意问题

因为tomcat是阉割过的,已经被压榨到最小可用,所以访问时报404,所以想要访问到tomcat首页,需要进入tomcat容器,或将webapps删除,并将webapps.dist改为webapps,或将webapps.dist内容复制到webapps目录下。这样就可以访问到tomcat首页了。

你可能感兴趣的:(Linux软件安装,操作系统,后端,docker,运维,linux)