0
点赞
收藏
分享

微信扫一扫

Docker基本命令

言诗把酒 2022-01-26 阅读 88

一、Docker容器基本命令

1)  docker stats   显示容器使用的系统资源,如图:

Docker基本命令_docker

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


[CONTAINER]:以短格式显示容器的 ID。
[CPU %]:CPU 的使用情况。
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
[MEM %]:以百分比的形式显示内存使用情况。
[NET I/O]:网络 I/O 数据。
[BLOCK I/O]:磁盘 I/O 数据。
[PIDS]:PID 号。
2) 获取镜像
docker pull ubuntu(镜像名称和版本)
3)启动容器,参数为以命令行模式进入该容器
docker run -it ubuntu /bin/bash
  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
  • 要退出终端,直接输入 exit:
4)启动已停止的容器
查看所有的容器命令:
docker ps -a

使用 docker start 启动一个已停止的容器:
docker start b750bbbcfd88 (容器ID)

停止的容器也可以通过 docker restart 重启
docker restart <容器 ID>
5)后台运行

在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。

docker run -itd --name ubuntu-test ubuntu /bin/bash
6)停止一个容器
docker stop <容器 ID>
7)进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

  • docker attach
  • docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

注意: 如果从这个容器退出,会导致容器的停止推荐大家使用 docker exec 命令。

docker exec -it 243c32535da7 /bin/bash

Docker基本命令_docker_02

8)导出和导入容器
a. 导出容器docker export 命令
docker export 1e560fca3906 > ubuntu.tar

Docker基本命令_docker_03

b. 导入容器快照

 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1

cat docker/ubuntu.tar | docker import - test/ubuntu:v1

Docker基本命令_docker_04也可以通过指定 URL 或者某个目录来导入:

docker import http://example.com/exampleimage.tgz example/imagerepo
9)删除容器docker rm
docker rm -f 1e560fca3906

Docker基本命令_docker_05下面的命令可以清理掉所有处于终止状态的容器。

$ docker container prune

实例运行一个web应用

runoob@runoob:~# docker pull training/webapp  # 载入镜像
runoob@runoob:~# docker run -d -P training/webapp python app.py

Docker基本命令_docker_06

参数说明:

  • -d:让容器在后台运行。
  • -P:将容器内部使用的网络端口随机映射到我们使用的主机上。

Docker基本命令_docker_07

Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上。

Docker基本命令_docker_08

也可以通过 -p 参数来设置不一样的端口:

容器内部的 5000 端口映射到我们本地主机的 5000 端口上,如下:

docker run -d -p 5000:5000 training/webapp python app.py
runoob@runoob:~# docker ps
CONTAINER ID IMAGE PORTS
bf08b7f2cd89 training/webapp 0.0.0.0:5000->5000/tcp

使用 docker port 可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号

runoob@runoob:~$ docker port bf08b7f2cd89
5000/tcp -> 0.0.0.0:5000
10)查看容器内部日志docker logs 【ID或者名字】

-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。

Docker基本命令_docker_09

11)查看应用程序进程docker top

Docker基本命令_docker_10

12)查看容器的相信信息 

docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息

Docker基本命令_docker_11

二、镜像基本命令

当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。

下面我们来学习:

  • 1、管理和使用本地 Docker 主机镜像
  • 2、创建镜像

1)列出本地镜像列表 docker images

Docker基本命令_docker_12各个选项说明:

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 ubuntu 仓库源里,有 15.10、14.04 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

2)拉取镜像 docker pull <镜像库>:<tag>

Docker基本命令_docker_13

3) 查找镜像 docker search

我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: ​​https://hub.docker.com/​​

我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个 httpd 的镜像来作为我们的 web 服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像

Docker基本命令_docker_14

4)删除镜像 docker rmi <镜像库>:<tag>

Docker基本命令_docker_15

5) 创建镜像

当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

  • 1、从已经创建的容器中更新镜像,并且提交这个镜像
  • 2、使用 Dockerfile 指令来创建一个新的镜像

a. 更新镜像

       新镜像之前,我们需要使用镜像来创建一个容器

        在此镜像中书写操作

        完成后exit命令退出这个容器

        找到这个经常的容器ID,通过命令 docker commit 来提交容器副本

Docker基本命令_docker_16

各个参数说明:

  • -m: 提交的描述信息
  • -a: 指定镜像作者
  • e218edb10161:容器 ID
  • runoob/ubuntu:v2: 指定要创建的目标镜像名

b. 构建镜像 docker build

我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

runoob@runoob:~$ cat Dockerfile 
FROM centos:6.7
MAINTAINER Fisher "fisher@sudops.com"

RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D

每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

第一条FROM,指定使用哪个镜像源

RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。

然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。​

runoob@runoob:~$ docker build -t runoob/centos:6.7 .
Sending build context to Docker daemon 17.92 kB
Step 1 : FROM centos:6.7
---> d95b5ca17cc3
Step 2 : MAINTAINER Fisher "fisher@sudops.com"
---> Using cache
---> 0c92299c6f03Step 3 : RUN /bin/echo 'root:123456' |chpasswd
---> Using cache
---> 0397ce2fbd0aStep 4 : RUN useradd runoob
......

参数说明:

  • -t :指定要创建的目标镜像名
  • . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
使用docker images 查看创建的镜像已经在列表中存在,镜像ID为860c279d2fec

6)设置镜像标签
runoob@runoob:~$ docker tag 860c279d2fec runoob/centos:dev
举报

相关推荐

0 条评论