Docker基本组成 和 基本命令
此篇为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基本组成 和 基本命令相关推荐
- Docker 容器 ----介绍安装基本命令
Docker-入门详解.部署.镜像加速.基本命令 文章目录 Docker---入门详解.部署.镜像加速.基本命令 前言 一:DOCKER理论 1.1:什么是docker?有什么作用? 1.2:Dock ...
- 第一章 docker 镜像,容器,仓库基本命令(二)
仓库(repository)是镜像存放的地方,目前官方维护了一个公共仓库 https://hub.docker.com; 具体的操作自行百度, 这里我们讨论如何搭建私有仓库 1.拉取仓库 $ dock ...
- docker镜像/容器的基本命令
** Docker学习 ** docker常用命令 dockers version // 查看docker的版本*** docker info // 显示docker的系统信息,包括镜像和容器的数量* ...
- docker容器学习笔记
docker是通过内核虚拟化技术来提供容器的资源隔离与安全保障. docker组成: docker client.docker server.docker组件(镜像(image).容器(contain ...
- centos7 docker删除端口映射_容器Docker详解
概述 基本概念Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源.Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Li ...
- 深入学习Docker网络(看这篇就完全够了)
1.什么是Docker网络 没有开启Docker网络时的网络状态: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state ...
- Docker使用总结
Docker Docker是基于Go语言实现的云开源项目,基于Linux的多项开源技术提供高效.敏捷和轻量级的容器方案. Docker的基本概念 Docker 容器是资源分割和调度的基本单位,封装整个 ...
- 容器技术-Docker 网络03-用户自定义网络-网络命令的使用
基于 Docker18.09.0 Docker 系列文章目录 安装Docker和容器管理 Docker镜像管理 Dockerfile详解 Docker数据卷管理 Docker网络之默认网络 Docke ...
- python自动化(六)持续集成:1.docker技术讲解
一.初识docker 1.什么是docker docker是一个开源的应用容器引擎,基于Go语言开发,docker可以让开发者打包他们的应用及依赖包到一个轻量级.可移植的容器,然后发布到任何流行的系统 ...
最新文章
- NYOJ 990 蚂蚁感冒
- web.config总结
- 荆门 php,荆门php培训
- 【翻译】Scott Mitchell的ASP.NET2.0数据指南中文版索引
- Bzoj1899: [Zjoi2004]Lunch 午餐
- 第10 章继承映射(InheritanceMappings)
- silverlight动态添加xaml物件
- 字节跳动1/3员工不支持取消大小周!库克称iPhone将采用可回收材料生产;清华博士接亲被要求现场写代码|极客头条...
- 全国第一条5G步行街开街;罗永浩回应直播有多赚钱:没那么夸张;Windows Terminal 1.4发布|极客头条
- 2014.4.21 福州 晴 离京第一次面试(某天) 失败啊
- Service自动被销毁?
- java连接SqlServer2000
- MPC控制笔记(一)
- win10易升_win10性能模式是什么?怎么开启?
- ps只能选择html格式,怎么找不到ps“选择主体”功能?
- 多站点同服务器同IP网站架设(IIS)心得
- android l usb调试,你居然还不会手机usb调试?5个方法,让你轻松学会设置!
- 路由器实现Vlan间通信
- android埋点,Android自动埋点的一种实现
- prtg linux 性能,PRTG 网络监控入门指南
热门文章
- C和指针之memmove函数 memcpy函数 strcspn函数 strspn函数 strrstr函数实现
- C++之inline函数
- LeetCode之Happy Number
- linux网络编程之用epoll实现io复用(基于tcp)
- Android之怎么隐藏EditText光标和自动显示键盘
- php基础教程 第十一步 面向对象补充
- solidity bytes 智能合约开发知识浅学(五点一)bytes基本概念
- mysql innodb 索引 延迟更新_Mysql覆盖索引与延迟关联
- 史上最丧心病狂的商品定价套路:如何从数学角度,榨干你身上的每一分钱
- 复工之后,如何让自己的时间更值钱