此篇为Docker笔记,文章可能存在疏忽,建议直接观看原视频。
视频地址:https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0

Docker基本组成 和 基本命令

  • 镜像 image:就好比一个模板,可以通过这个模板创建容器服务。例如:tomcat镜像===>run===>tomcat容器(提供服务),通过这个镜像可以创建多个容器(最终服务/项目运行就是在容器中);
  • 容器 container:Docker运用容器技术,运行一个或一组应用;操作:启动、停止、删除;
  • 仓库 repository:存放镜像的地方;公有仓库、私有仓库;

测试安装成功


使用帮助:https://docs.docker.com/engine/reference/commandline/cli/

常用命令

镜像和容器的区别?

简单点说,镜像就类似操作系统光盘介质,容器相当于通过光盘安装后的系统。通过光盘(镜像),我们能在不同机器上部署系统(容器),系统内的操作只会保留在当前的系统(容器)中,如果要升级系统,需要使用到光盘,但是可能会导致操作系统的数据丢失

镜像命令

docker images

$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED      SIZE
hello-world   latest    feb5d9fea6a5   4 days ago   13.3kB
#只显示image id
$ docker images -q
feb5d9fea6a5

docker search 查询 (或者直接在dockerhub上查询)

$ docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11480     [OK]
mariadb                           MariaDB Server is a high performing open sou…   4356      [OK]
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   849                  [OK]
# 可选项
--filter=STARS=4000 # 过滤 STARS大于4000的镜像

docker pull 下载

# 默认下载最新版 [:tag]指定版本  docker pull mysql:5.7
$ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
07aded7c29c6: Pull complete  # 分层下载 docker image的核心 联合文件系统
f68b8cbd22de: Pull complete
30c1754a28c4: Pull complete
1b7cb4d6fe05: Pull complete
79a41dc56b9a: Pull complete
00a75e3842fb: Pull complete
b36a6919c217: Pull complete
635b0b84d686: Pull complete
6d24c7242d02: Pull complete
5be6c5edf16f: Pull complete
cb35eac1242c: Pull complete
a573d4e1c407: Pull complete
Digest: sha256:4fcf5df6c46c80db19675a5c067e737c1bc8b0e78e94e816a778ae2c6577213d  # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest  # docker pull mysql 等价于 docker pull docker.io/library/mysql:latest$ docker pull mysql:5.7
5.7: Pulling from library/mysql
07aded7c29c6: Already exists # 已经存在的资源不会重复下载
f68b8cbd22de: Already exists
30c1754a28c4: Already exists
1b7cb4d6fe05: Already exists
79a41dc56b9a: Already exists
00a75e3842fb: Already exists
b36a6919c217: Already exists
5e11fe494f45: Pull complete
9c7de1f889a7: Pull complete
cf6a13d05a76: Pull complete
fc5aa81f393a: Pull complete
Digest: sha256:360c7488c2b5d112804a74cd272d1070d264eef4812d9a9cc6b8ed68c3546189
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

docker rmi 删除

$ docker rmi -f 镜像id 镜像id
$ docker rmi -f $(docker iamges -aq) # $()传递参数,表示删除全部镜像
容器命令

有了镜像才可以创建容器,下载一个centos镜像来测试。

$ docker pull centos

新建容器并启动

$ docker run [可选参数] imageId
# 参数说明
--name="Name"        容器名称
-d                   后台运行方式
-it                  使用交互方式运行,进入容器查看内容
-p                   指定容器端口-p ip:主机端口:容器端口-p 主机端口:容器端口-p 容器端口容器端口
-P                   随机指定端口# 启动并进入容器  -it 以交互的方式运行
[root@zcz /]$ docker run -it centos
[root@46e93dbe3361 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@46e93dbe3361 /]# exit

列出运行中的容器

#docker ps-a # 正在运行的容器 + 曾经运行的容器-n=? # 最近创建的容器-q # 显示正在运行的容器id
$ docker ps
$docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED         STATUS                     PORTS     NAMES
46e93dbe3361   centos        "/bin/bash"   4 minutes ago   Exited (0) 2 minutes ago             goofy_gagarin
f1e91564c179   hello-world   "/hello"      24 hours ago    Exited (0) 24 hours ago              distracted_chaplygin

退出容器

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

删除容器

$ docker rm 容器id 容器id # 不能删除运行中的容器,可以使用-f强制删除
$ docker rm -f $(docker ps -aq) # 删除所有容器
$ docker ps -a -q|xargs docker rm

启动和停止容器

$ docker start 容器id
$ docker restart 容器id
$ docker stop 容器id
$ docker kill 容器id # 强制停止
其他命令

后台启动

# 通过镜像启动容器
$ docker run -d centos
# 常见的坑:后台启动之后,docker ps发现centos停止了,why?
# 容器后台运行,就必须要有一个前台程序,docker发现没有应用,就会停止。

查看CPU状态

$ docker stats

查看日志

$ docker logs -ft --tail 10 容器id

查看容器中进程信息

$ docker top 容器id

查看镜像元数据

$ docker inspect 镜像id

进入当前正在运行的容器

# 通常容器都是以后台方式运行,有时需要进入容器,修改一些配置
$ docker exec -it 容器id /bin/bash # 进入容器之后开启一个新的终端
# 方式二
$ docker attach 容器id    # 进入容器正在执行的终端,不会启动新进程

从容器拷贝文件到主机

$ docker cp 容器id:容器内路径 目的主机路径
# 后期可以使用卷的技术实现一个同步
[root@0c219b26f861 /]# cd home/
[root@0c219b26f861 home]# ls
[root@0c219b26f861 home]# touch hello.go
[root@0c219b26f861 home]# ls
hello.go
[root@0c219b26f861 home]# exit
exit
root@zcz:/home$ docker cp 0c219b26f861:/home/hello.go /home/
root@zcz:/home$ ls
hello.go  zhuchangzhen

小结

Docker基本组成 和 基本命令相关推荐

  1. Docker 容器 ----介绍安装基本命令

    Docker-入门详解.部署.镜像加速.基本命令 文章目录 Docker---入门详解.部署.镜像加速.基本命令 前言 一:DOCKER理论 1.1:什么是docker?有什么作用? 1.2:Dock ...

  2. 第一章 docker 镜像,容器,仓库基本命令(二)

    仓库(repository)是镜像存放的地方,目前官方维护了一个公共仓库 https://hub.docker.com; 具体的操作自行百度, 这里我们讨论如何搭建私有仓库 1.拉取仓库 $ dock ...

  3. docker镜像/容器的基本命令

    ** Docker学习 ** docker常用命令 dockers version // 查看docker的版本*** docker info // 显示docker的系统信息,包括镜像和容器的数量* ...

  4. docker容器学习笔记

    docker是通过内核虚拟化技术来提供容器的资源隔离与安全保障. docker组成: docker client.docker server.docker组件(镜像(image).容器(contain ...

  5. centos7 docker删除端口映射_容器Docker详解

    概述 基本概念Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源.Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Li ...

  6. 深入学习Docker网络(看这篇就完全够了)

    1.什么是Docker网络 没有开启Docker网络时的网络状态: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state ...

  7. Docker使用总结

    Docker Docker是基于Go语言实现的云开源项目,基于Linux的多项开源技术提供高效.敏捷和轻量级的容器方案. Docker的基本概念 Docker 容器是资源分割和调度的基本单位,封装整个 ...

  8. 容器技术-Docker 网络03-用户自定义网络-网络命令的使用

    基于 Docker18.09.0 Docker 系列文章目录 安装Docker和容器管理 Docker镜像管理 Dockerfile详解 Docker数据卷管理 Docker网络之默认网络 Docke ...

  9. python自动化(六)持续集成:1.docker技术讲解

    一.初识docker 1.什么是docker docker是一个开源的应用容器引擎,基于Go语言开发,docker可以让开发者打包他们的应用及依赖包到一个轻量级.可移植的容器,然后发布到任何流行的系统 ...

最新文章

  1. NYOJ 990 蚂蚁感冒
  2. web.config总结
  3. 荆门 php,荆门php培训
  4. 【翻译】Scott Mitchell的ASP.NET2.0数据指南中文版索引
  5. Bzoj1899: [Zjoi2004]Lunch 午餐
  6. 第10 章继承映射(InheritanceMappings)
  7. silverlight动态添加xaml物件
  8. 字节跳动1/3员工不支持取消大小周!库克称iPhone将采用可回收材料生产;清华博士接亲被要求现场写代码|极客头条...
  9. 全国第一条5G步行街开街;罗永浩回应直播有多赚钱:没那么夸张;Windows Terminal 1.4发布|极客头条
  10. 2014.4.21 福州 晴 离京第一次面试(某天) 失败啊
  11. Service自动被销毁?
  12. java连接SqlServer2000
  13. MPC控制笔记(一)
  14. win10易升_win10性能模式是什么?怎么开启?
  15. ps只能选择html格式,怎么找不到ps“选择主体”功能?
  16. 多站点同服务器同IP网站架设(IIS)心得
  17. android l usb调试,你居然还不会手机usb调试?5个方法,让你轻松学会设置!
  18. 路由器实现Vlan间通信
  19. android埋点,Android自动埋点的一种实现
  20. prtg linux 性能,PRTG 网络监控入门指南

热门文章

  1. C和指针之memmove函数 memcpy函数 strcspn函数 strspn函数 strrstr函数实现
  2. C++之inline函数
  3. LeetCode之Happy Number
  4. linux网络编程之用epoll实现io复用(基于tcp)
  5. Android之怎么隐藏EditText光标和自动显示键盘
  6. php基础教程 第十一步 面向对象补充
  7. solidity bytes 智能合约开发知识浅学(五点一)bytes基本概念
  8. mysql innodb 索引 延迟更新_Mysql覆盖索引与延迟关联
  9. 史上最丧心病狂的商品定价套路:如何从数学角度,榨干你身上的每一分钱
  10. 复工之后,如何让自己的时间更值钱