Docker 学习笔记

Docker // 是一个 Client - Server 结构

推荐视频:【狂神说Java】Docker最新超详细版教程通俗易懂_哔哩哔哩_bilibili

帮助命令

帮助文档:https://docs.docker.com/reference

Docker 命令 --help # 万能命令
Docker version # 查看版本
Docker info # 显示docker的系统信息 包括镜像和容器数量
Docker run xxx # 运行本机指定镜像

镜像命令

docker images // 镜像命令

[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   13 months ago   13.3kB
​
# 解释
REPOSITORY  镜像的仓库源
TAG         镜像的标签
IMAGE ID    镜像的ID
CREATED     镜像的创建时间
SIZE        镜像的大小
​
# 可选项
  -a, --all             # 列出所有镜像
  -q, --quiet           # 只显示镜像ID

docker search // 搜索镜像

[root@localhost ~]# docker search mysql
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                           MySQL is a widely used, open-source relation…   13345     [OK]       
mariadb                         MariaDB Server is a high performing open sou…   5098      [OK]       
phpmyadmin                      phpMyAdmin - A web interface for MySQL and M…   657       [OK]       
percona                         Percona Server is a fork of the MySQL relati…   592       [OK]   
​
# 可选项
  --filter=STARS=3000 # 搜索出来的镜像就是STARS大于3000的
[root@localhost ~]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   13345     [OK]       
mariadb   MariaDB Server is a high performing open sou…   5098      [OK]   

docker pull // 下载镜像

# 下载镜像 docker pull 镜像名[:tag] // 版本
[root@localhost ~]# docker pull mysql 
Using default tag: latest  # 如果不写版本 tag 默认就是laster
5ed150ed0abe: Pull complete # 分层下载 docker image 的核心 联合文件系统
0fede58e17ac: Pull complete 
994a6ddd6efe: Pull complete 
028bda79779b: Pull complete 
426fbe9e56a2: Pull complete 
1a00e58dd193: Pull complete 
4a4f64494005: Pull complete 
fba8ab3534a7: Pull complete 
2695938edf88: Pull complete 
3754e2587bed: Pull complete 
1b9f154543e7: Pull complete 
Digest: sha256:147572c972192417add6f1cf65ea33edfd44086e461a3381601b53e1662f5d15
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 真实地址
​
# 等价于它
docker pull mysql 
docker pull docker.io/library/mysql:latest 
​
# 指定版本下载
[root@localhost ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
0056409b8e89: Pull complete 
219bd535343d: Pull complete 
f220ee65eb90: Pull complete 
7bbb395b2290: Pull complete 
645e487e5f0a: Pull complete 
a9fa38d2e1fb: Pull complete 
e1d9f4f7e8b4: Pull complete 
e03fcfe5d90e: Pull complete 
74c4d4272e30: Pull complete 
e3a8ad6eeebe: Pull complete 
919524a8718b: Pull complete 
Digest: sha256:94176d0ad4ed85767fc0d74b8071387109a0390e7c1afd39788269c96d2dad74
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

docker rmi // 删除镜像

[root@localhost ~]# docker rmi -f 容器ID  # 删除指定的容器
[root@localhost ~]# docker rmi -f 容器ID 容器ID 容器ID 容器ID  # 删除多个的容器
[root@localhost ~]# docker rmi -f $(docker images -aq) # 删除全部容器

容器命令

说明:我们有了镜像才可以创建容器 linux 下载一个 centos 镜像来测试学习

docker pull centos

docker run [可选参数] image // 新建容器并启动

# 参数说明
--name="Name"        # 容器名字 tomcat01 tomcat02 用来区分容器
-d                  # 后台方式运行
-it                 # 使用交互方式运行 进入容器查看内容
-p                  # 指定容器的端口 -p 8080:8080 (小写p)
    -p ip:主机端口:容器端口
    -p 主机端口:容器端口 (常用)
    -p 容器端口
-P                  # 随机指定端口 (大写P)
​
​
# 测试
[root@localhost ~]# docker run -it centos /bin/bash   # 启动并进入容器
[root@6d1dad4f7880 /]# ls   # 容器内的centos 基础版本 很多命令都是不完善的!
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
​
# 从容器中退回主机
[root@6d1dad4f7880 /]# exit
exit
[root@localhost ~]# ls
公共  视频  文档  音乐  anaconda-ks.cfg
模板  图片  下载  桌面  initial-setup-ks.cfg

列出所有运行中的容器 // docker ps

# docker ps 命令
   # 列出当前整个在运行的容器
-a # 列出当前整个在运行的容器 + 历史运行过的容器
-n=? #列出最近创建的容器
-q # 只显示容器的编号
​
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                          PORTS     NAMES
6d1dad4f7880   centos    "/bin/bash"   3 minutes ago   Exited (0) About a minute ago             cranky_poitras

退出容器

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

删除容器 // docker rm

docker rm 容器ID               # 删除指定容器 不能删除正在运行的容器
docker rm -f $(docker ps -aq)   # 删除所有的容器 强制删除 可以删除正在运行的
docker ps -a -q|xargs dcoker rm # 删除所有的容器

启动和停止容器的操作

docker start 容器ID       # 启动容器
docker restart 容器ID     # 重启容器
docker stop 容器ID        # 停止当前正在运行的容器
docker kill 容器ID        # 强制停止当前容器

常用其他命令

后台启动容器 // docker run

# docker run -d 镜像名!
[root@localhost ~]# docker run -d centos
# 问题docker ps 发现 centos 停止了
# 常见的坑 docker 容器使用后台运行 就必须要有一个前台进程 docker发现没有应用 就会自动停止
# nginx 容器启动后 发现在家没有提供服务 就会立刻停止 就是没有程序了

查看日志 // docker logs

# docker logs -tf --tail 查看条数 容器     # 没有日志
# docker logs -tf 容器  # 查看全部日志   # 没有日志
​
# 自己写一段shell脚本
[root@localhost ~]# docker run -d centos /bin/sh -c "while true;do echo weilekaixin;sleep 1;done"
​
# [root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
2562525e297d   centos    "/bin/sh -c 'while t…"   28 seconds ago   Up 26 seconds             inspiring_davinci
# 显示日志
-tf           #显示日志
-- tail number # 要显示的日志条数
[root@localhost ~]# docker logs -tf --tail 10  2562525e297d
2022-10-19T03:43:02.965344920Z weilekaixin
2022-10-19T03:43:03.978534255Z weilekaixin
2022-10-19T03:43:04.983054247Z weilekaixin
2022-10-19T03:43:05.986780709Z weilekaixin
2022-10-19T03:43:06.989738379Z weilekaixin
2022-10-19T03:43:07.994183720Z weilekaixin
2022-10-19T03:43:08.998905522Z weilekaixin
2022-10-19T03:43:10.001559985Z weilekaixin
2022-10-19T03:43:11.006437202Z weilekaixin
2022-10-19T03:43:12.011787221Z weilekaixin
2022-10-19T03:43:13.015084744Z weilekaixin
2022-10-19T03:43:14.017707354Z weilekaixin
2022-10-19T03:43:15.020682705Z weilekaixin
2022-10-19T03:43:16.026036103Z weilekaixin
2022-10-19T03:43:17.031302231Z weilekaixin
​

查看 docker 容器内部中的进程信息 // docker top

[root@localhost ~]# docker top 2562525e297d
UID                 PID                 PPID       
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值