Docker命令详解

1.基础命令

systemctl start docker        启动docker

systemctl stop docker        关闭docker

systemctl enable docker        开机自启动docker

2.镜像命令

docker images 查看本地主机的所有镜像

docker search   (镜像名)     搜索镜像

docker pull 镜像名[:tag]       下载镜像

docker run 镜像名[:tag]        运行镜像

删除镜像命令

#删除一个
docker rmi -f 镜像名/镜像ID

#删除多个 其镜像ID或镜像用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)

#强制删除镜像

docker image rm 镜像名称/镜像ID

保存镜像(将我们的镜像保存为tar 压缩文件 这样方便镜像转移和保存

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字

示例:docker save tomcat -o /myimg.tar

加载镜像(任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像

docker load -i 镜像保存文件位置

示例:docker load -i /myimg.tar(然后用docker images命令即可看到已加载该镜像了)

镜像标签~

3.容器命令    

容器:通过run 镜像 来构建 自己的容器实例 

docker ps [-a]        查看运行容器列表(-a为列出所有容器)

# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行) --name 给要运行的容器 起的名字 /bin/bash 交互路径

运行容器

docker run [可选参数] image

#参数说明
--name="名字"           指定容器名字
-d                     后台方式运行
-it                    使用交互方式运行,进入容器查看内容
-p                     指定容器的端口
(
-p ip:主机端口:容器端口  配置主机端口映射到容器端口
-p 主机端口:容器端口
-p 容器端口
)
-P                     随机指定端口(大写的P)

docker run -it -d --name 要取的别名 镜像[:tag] /bin/bash

注意

1.这里的端口和本地机上的端口没有关系, 若相产生关联,需要使用上面提到的容器端口映射

示例:docker run -itd --name redis002 -p 8888:6379 redis:5.0.5 /bin/bash

2.docker容器后台运行,必须要有一个前台的进程,否则会自动停止

停止容器

docker stop 容器名/容器ID       

删除容器

#删除一个容器
docker rm -f 容器名/容器ID
#删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
#删除全部容器
docker rm -f $(docker ps -aq)

进入容器

1 exec 方式(推荐)

docker exec -it 容器名/容器ID /bin/bash

2.attch方式

docker attach 容器名/容器ID

退出容器

#exit 停止并退出容器(后台方式运行则仅退出)

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

停止容器
docker stop 容器ID/容器名
重启容器
docker restart 容器ID/容器名
启动容器
docker start 容器ID/容器名
kill 容器
docker kill 容器ID/容器名

容器文件拷贝

#从容器内 拷出
docker cp 容器ID/名称: 容器内路径  容器外路径
#从外部 拷贝文件到容器内
docker  cp 容器外路径 容器ID/名称: 容器内路径

查看容器日志

docker logs [--tail number] 容器id或容器名 #num为要显示的日志条数

查看容器进程信息

docker top id或名

查看容器元数据

docker inspect id或名

开机自启动容器

启动容器时,使用docker run命令时 添加参数--restart=always 便表示,该容器随docker服务启动而自动启动

更换容器名

docker rename 容器ID/容器名 新容器名

3.数据挂载

简单来讲,就是将容器内的数据与外部宿主机文件绑定起来,类似一个双持久化,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复!

格式:-v 宿主机文件存储位置:容器内文件位置

示例

# 运行一个docker redis 容器 进行 端口映射 两个数据卷挂载 设置开机自启动
docker run -d -p 6379:6379 --name redis505 --restart=always  -v /var/lib/redis/data/:/data -v /var/lib/redis/conf/:/usr/local/etc/redis/redis.conf  redis:5.0.5 --requirepass "password"

容器数据卷

首先启动容器1,volume01、volume02为挂载目录。

[root@iZwz99sm8v95sckz8bd2c4Z ~]# docker run -it --name cnetos01 ethan/centos:1.0


然后启动容器2,通过参数--volumes-from,设置容器2和容器1建立数据卷挂载关系。

[root@iZwz99sm8v95sckz8bd2c4Z /]# docker run -it --name centos02 --volumes-from cnetos01 ethan/centos:1.0

4.提交镜像

docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag

示例:

我们拉取一个tomcat镜像 并持久化运行 且设置与宿主机进行端口映射

[root@localhost user]# docker pull tomcat
[root@localhost user]# docker run -d --name tom  -p 9999:8080 tomcat
[root@localhost user]# curl -I localhost:9999
HTTP/1.1 404 
Content-Type: text/html;charset=utf-8
Content-Language: en
Transfer-Encoding: chunked
Date: Sun, 10 Jul 2022 13:39:42 GMT
#我们发现是404,这是因为还需要进行如下操作才可以真正启动tomcat
#进入容器
[root@localhost user]# docker exec -it tom /bin/bash
root@e956083500f6:/usr/local/tomcat# cp  -r webapps.dist/* webapps
#退出容器
[root@localhost user]# docker exec -it tom /bin/bash
root@e956083500f6:/usr/local/tomcat# ls
BUILDING.txt	 NOTICE		RUNNING.txt  lib	     temp	   work
CONTRIBUTING.md  README.md	bin	     logs	     webapps
LICENSE		 RELEASE-NOTES	conf	     native-jni-lib  webapps.dist
root@e956083500f6:/usr/local/tomcat# cp  -r webapps.dist/* webapps
root@e956083500f6:/usr/local/tomcat# exit
exit
[root@localhost user]# curl -I localhost:9999
HTTP/1.1 200 
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Sun, 10 Jul 2022 13:42:40 GMT
#200 成功



若想在本地机中访问虚拟机中的tomcat服务

虚拟机中使用ifconfig查看虚拟机ip

 浏览器中访问:http://192.168.159.138:9999        成功

使用 提交命令 将在运行的tomcat 容器 打包为一个全新的镜像 名字为tom Tag为1.0

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
mysql         latest    7e7e458be53c   4 days ago     444MB
nginx         latest    605c77e624dd   6 months ago   141MB
tomcat        latest    fb5657adc892   6 months ago   680MB
hello-world   latest    feb5d9fea6a5   9 months ago   13.3kB
centos        latest    5d0da3dc9764   9 months ago   231MB
[root@localhost user]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                       NAMES
e956083500f6   tomcat    "catalina.sh run"        38 minutes ago   Up 38 minutes   0.0.0.0:9999->8080/tcp, :::9999->8080/tcp   tom
7137c16a9164   nginx     "/docker-entrypoint.…"   46 minutes ago   Up 46 minutes   0.0.0.0:3344->80/tcp, :::3344->80/tcp       ng01
[root@localhost user]# docker commit -a="xiaobai" -m="xiaobai-tom" e956083500f6 tom:1.0
sha256:f6387f05c42f0e21cd5c305b458465f09da9c099454d8753f96c268a7b5b7dd8
[root@localhost user]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
tom           1.0       f6387f05c42f   12 seconds ago   684MB
mysql         latest    7e7e458be53c   4 days ago       444MB
nginx         latest    605c77e624dd   6 months ago     141MB
tomcat        latest    fb5657adc892   6 months ago     680MB
hello-world   latest    feb5d9fea6a5   9 months ago     13.3kB
centos        latest    5d0da3dc9764   9 months ago     231MB
[root@localhost user]# docker run -d -p 9000:8080 --name my_tom tom:1.0  
45f388e9212c1ed50308736ce16356b0eec0448693885ace10d631d11f3fc986
[root@localhost user]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                       NAMES
45f388e9212c   tom:1.0   "catalina.sh run"        15 seconds ago   Up 13 seconds   0.0.0.0:9000->8080/tcp, :::9000->8080/tcp   my_tom
e956083500f6   tomcat    "catalina.sh run"        44 minutes ago   Up 44 minutes   0.0.0.0:9999->8080/tcp, :::9999->8080/tcp   tom
7137c16a9164   nginx     "/docker-entrypoint.…"   53 minutes ago   Up 53 minutes   0.0.0.0:3344->80/tcp, :::3344->80/tcp       ng01

完成~~~

参考资料:

Docker快速入门总结笔记_Code0cean的博客-CSDN博客_docker快速

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
docker命令可以用于管理和操作Docker容器和镜像。以下是一些常用的docker命令: 1. 启动、停止和重启Docker服务: - 启动Docker:`systemctl start docker` - 停止Docker:`systemctl stop docker` - 重启Docker:`systemctl restart docker` - 查看Docker状态:`systemctl status docker` - 设置Docker开机自启动:`systemctl enable docker` 2. 查看Docker信息和帮助文档: - 查看Docker概要信息:`docker info` - 查看Docker总体帮助文档:`docker --help` - 查看特定命令的帮助文档:`docker 具体命令 --help` 3. 管理镜像: - 列出所有镜像:`docker images` - 删除镜像:`docker rmi 镜像ID`或`docker rmi 镜像名:TAG` - 删除多个镜像:`docker rmi 镜像名1:TAG 镜像名2:TAG` - 一次性删除所有镜像:`docker rmi -f $(docker images -qa)` 4. 管理容器: - 列出所有容器:`docker ps -a` - 删除容器:`docker rm 容器ID或名称` - 删除多个容器:`docker rm 容器ID或名称1 容器ID或名称2` - 一次性删除所有容器:`docker rm -f $(docker ps -a -q)` - 查看容器日志:`docker logs 容器ID或名称` 以上是一些常用的docker命令,可以根据需要使用相应的命令进行操作。请注意,在使用删除命令时,谨慎操作以避免误删重要的容器和镜像。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Docker常用命令详解](https://blog.csdn.net/laogui666/article/details/127721374)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白木Channel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值