Docker详细介绍(4)

一、Docker安装

1-1、docker-ce、docker-ee介绍

(1)Docker-CE:

指Docker社区版,由社区维护和提供技术支持,为免费版本,适合个人开发人员和小团队使用。

(2)Docker-EE:

指Docker企业版,为收费版本,由售后团队和技术团队提供技术支持,专为企业开发和IT团队而设计。

1-2、docker-ce安装

(1)centos7 上安装 docker-ce

# 0 卸载老版本(新机器不用操作)
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# yum list installed | grep docker
# yum remove docker-ce.x86_64 docker-ce-cli.x86_64
# rm -rf /var/lib/docker
# sudo yum update

# 1 安装必要的系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 2 添加源信息
	-官方:地址在国外,很慢
  sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  -阿里云:(推荐)
  sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 3 检查一下/etc/yum.repos.d/docker-ce.repo 中的url地址是不是都是阿里云
cat /etc/yum.repos.d/docker-ce.repo 
# 4 安装
sudo yum -y install docker-ce
# 5 开启docker服务
systemctl start docker

# 6 docker info 查看docker信息

(2)ubuntu 上安装 docker-ce

# 0 卸载
sudo apt-get remove docker docker-engine docker.io containerd runc
# 1 安装必要工具
sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
# 2 安装GPG证书
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#换成阿里云
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 2 写入软件源信息
#官方
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
#换成阿里云
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# 3 更新并安装docker-ce
sudo apt-get -y install docker-ce
# 4 开启docker服务
systemctl status docker

二、Docker常用命令

2-1、容器命令

2-1-1、列出容器

命令:docker ps [OPTIONS]

OPTIONS说明:

序号

OPTIONS命令

描述说明

1

-a

显示所有的容器,包括未运行的

2

-f

根据条件过滤显示的内容

3

--format

指定返回值的模板文件

4

-l

显示最近创建的容器

5

-n

列出最近创建的n个容器

6

--no-trunc

不截断输出

7

-q

静默模式,只显示容器编号

8

-s

显示总的文件大小

示例:

#查看正在运行的容器
docker ps

#查看所有的容器
docker ps –a

#检索所有包含peer0的容器
docker ps -a | grep peer0

2-1-2、查看容器日志

命令:docker logs [OPTIONS] CONTAINER_ID

OPTIONS说明:

序号

OPTIONS命令

描述说明

1

--details

显示更多的信息

2

-f, --follow

跟踪实时日志

3

--since string

显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)

4

--tail string

从日志末尾显示多少行日志, 默认是all

5

-t, --timestamps

显示时间戳

6

--until string

显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

示例:

#查看容器baa8ca7f50f5的日志
docker logs baa8ca7f50f5 | tail -20

2-1-3、杀死正在运行的容器

(1)杀死某个容器。命令:docker kill 容器ID

(2)杀死所有正在运行的容器。命令:docker kill $(docker ps -a -q)

2-1-4、删除容器

(1)删除某个容器。命令:docker rm 容器ID

(2)删除所有已经停止的容器。命令:docker rm $(docker ps -a -q)

2-1-5、重启容器

命令:docker restart 容器ID

2-1-6、启动和停止容器

(1)停止容器。命令:docker stop 容器id或者容器名

(2)启动容器。命令:docker start 容器id或者容器名

2-1-7、创建容器

实际上是有docker create方法的,这样就是创建一个容器,并不会运行,run相当于create+start,新版docker推荐使用run

命令:docker run [OPTIONS]

OPTIONS说明:

序号

OPTIONS命令

描述说明

1

-i

表示创建并运行容器

2

-t

表示容器启动后会进入其命令行。通常于-i一起使用:-it表示创建并运行容器,且运行之后自动进入为当前应用打开一个默认终端

3

--name

为创建的容器命名

4

-v

表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射

5

-d

在run后面加上-d参数,则会创建一个守护式容器在后台运行,与-t相反

6

-p

表示端口映射,前者是宿主机端口,后者是容器内的映射端口,程序访问是通过宿主机映射端口来访问容器的。可以使用多个-p做多个端口映射

7

-e

表示添加容器的环境变量。

8

--rm

让容器在退出时,自动清除挂在的卷,以便清除数据。等价于在容器退出后,执行docker rm -v

示例:

1)交互式的方式创建容器:这样的方式我们直接就进入了容器内部

docker run -it --name=容器名称 镜像名称:标签 /bin/bash

2)后台式创建容器:这样的方式创建成功之后没有进入容器内部

docker run -id --name=容器名称 镜像名称:标签

如果想要进入容器内部可以用下面的命令:

docker exec -it 容器名称(或者容器ID) /bin/bash

3)目录映射:

我们可以在创建容器的时候通过 -v参数,将宿主机的目录文件与容器内的目录文件进行映射,这样我们就可以通过修改宿主机目录文件从而去影响容器。

#格式:创建容器 –v 宿主机的目录:容器的目录
docker run -id -v /usr/local/dunm.rdb:/data/dunm.rdb --name=myRedis redis:latest

4)通过镜像文件创建容器 :

docker run -id --name=docker_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=rootcentos/mysql-57-centos7
 MYSQL_ROOT_PASSWORD参数表示登录MySQL的root用户的密码。

5)配置容器磁盘使用空间大小:

docker run -it --storage-opt size=120G fedora /bin/bash

2-1-8、拷贝容器文件

1)把宿主机的文件拷贝到容器里

命令:docker cp 需要拷贝的文件或目录 容器名称:容器目录

2)从容器中拷贝文件到宿主机

命令:docker cp 容器名称:容器目录 需要拷贝的文件或目录

2-1-9、查看容器的数据

命令:docker inspect 容器名称(容器ID)

2-1-10、把容器保存为镜像

命令:docker commit 容器名 保存的镜像名

2-1-11、容器备份

命令:docker save –o 打包的后的文件名.tar 镜像名

2-1-12、容器恢复

命令:docker load –i 你的备份镜像tar包

2-1-13、监控容器使用的系统资源

命令:docker stats

默认情况下,stats 命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。下面是输出的主要内容:

序号

字段

描述说明

1

CONTAINER

以短格式显示容器的 ID

2

CPU %

CPU 的使用情况

3

MEM USAGE / LIMIT

当前使用的内存和最大可以使用的内存

4

MEM %

以百分比的形式显示内存使用情况

5

NET I/O

网络 I/O 数据

6

BLOCK I/O

磁盘 I/O 数据

7

PIDS

PID 号

如果不想持续的监控容器使用资源的情况,可以通过 --no-stream 选项只输出当前的状态:

docker stats --no-stream

只输出指定的容器:

docker stats --no-stream 容器的名称或容器ID

注意,多个容器的名称或者是 ID 之间需要用空格进行分割

格式化输出的结果:

docker stats --format "table {
  {.Name}}\t{
  {.CPUPerc}}\t{
  {.MemUsage}}"

docker stats 命令支持我们通过 --format 选项自定义输出的内容和格式

上面的命令中我们只输出了 Name, CPUPerc 和 Memusage 三列。下面是自定义的格式中可以使用的所有占位符:

序号

占位符

描述说明

1

.Container

根据用户指定的名称显示容器的名称或 ID

2

.Name

容器名称

3

.ID

容器 ID

4

.CPUPerc

CPU 使用率

5

.MemUsage

内存使用量

6

.NetIO

网络 I/O

7

.BlockIO

磁盘 I/O

8

.MemPerc

内存使用率

9

.PIDs

PID 号

有了这些信息我们就可以完全按照自己的需求或者是偏好来控制 docker stats 命令输出的内容了。

除了以 table 格式输出结果,还可以通过 format 选项输出 json 格式的结果:

docker stats --no-stream --format "{\"container\":\"{
  { .Container }}\",\"memory\":{\"raw\":\"{
  { .MemUsage }}\",\"percent\":\"{
  { .MemPerc }}\"},\"cpu\":\"{
  { .CPUPerc }}\"}"

2-1-14、导出容器

命令:docker export [OPTIONS] CONTAINER

OPTIONS说明:

序号

OPTIONS命令

描述说明

1

-o

将输入内容写到文件

示例:

docker export -o export123.tar a404c6c174a2

2-2、镜像命令

2-2-1、列出镜像

命令:docker images

字段说明:

序号

字段

描述说明

1

REPOSITORY

镜像名称

2

TAG

镜像标签

3

IMAGE ID

镜像ID

4

CREATED

镜像的创建日期(不是获取该镜像的日期)

5

SIZE

镜像大小

2-2-2、删除镜像

1)删除某个镜像。命令:docker rmi 镜像ID

2)删除所有镜像。命令:docker rmi $(docker images -q)

2-2-3、强制删除所有镜像

命令:docker rmi -f $(docker images -q)

2-2-4、搜索镜像

命令:docker search 镜像名

2-2-5、拉取镜像

命令:docker pull 镜像名:版本

备注:如果不加版本默认会为我们下载latest版本

2-2-6、制作镜像

命令:docker build -t 镜像名 .

备注:

1)最后是有个“.”的,表示使用当前目录的Dockerfile构建;

2)-t参数表示制成的镜像名,可任意定义。

2-2-7、将镜像保存为归档文件

命令:docker save [OPTIONS] IMAGE [IMAGE...]

OPTIONS 说明:

序号

OPTIONS命令

描述说明

1

-o

输出到的文件

示例:

docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3

2-2-8、从归档文件创建镜像

命令:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

OPTIONS说明:

序号

OPTIONS命令

描述说明

1

-c

应用docker 指令创建镜像

2

-m

提交时的说明文字

示例:

docker import  my_ubuntu_v3.tar runoob/ubuntu:v4

2-2-9、从归档文件导入镜像

命令:docker load [OPTIONS]

OPTIONS 说明:

序号

OPTIONS命令

描述说明

1

--input , -i

指定导入的文件,代替 STDIN

2

--quiet , -q

精简输出信息

示例:

docker load --input fedora.tar
docker load < busybox.tar.gz

备注:

1)docker load和docker import的区别:

实际上,既可以使用docker load命令来导入镜像库存储文件到本地镜像库,也可以使用docker import命令来导入一个容器快照到本地镜像库。

两者的区别在于容器快照将会丢弃所有的历史记录和元数据信息,而镜像存储文件将保存完整记录,体积也会更大。此外从容器快照文件导入时,也可以重新指定标签等元数据。

2-2-10、修改镜像的tag和name

命令:docker tag 【镜像id】 【镜像名称】:【镜像版本】

示例:

docker tag 9aed1ced115f imagename:1.0.4

2-2-11、清理Build缓存

命令:docker builder prune

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sun cat

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

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

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

打赏作者

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

抵扣说明:

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

余额充值