No.1 Docker基本命令一览

前言

本文主要是记录一些Docker的常用指令,方便查询,提高工作效率。

镜像篇

要想创建容器,首页得有镜像,所以本文先从镜像开始讲起。

镜像下拉

要想得到一个镜像有多种方式,即可以从dockerhub下拉(下载),也可以从自己的镜像源,亦或者自己构建。

镜像下拉使用docker pull命令,如下:

$ docker pull ubuntu:16.04
复制代码

查看镜像列表

当镜像下拉成功后,就可以使用该命令查看:

$ docker image ls 

$ docker image ls | grep ubuntu
ubuntu       16.04               96da9143fb18        1 months ago       124MB
复制代码

删除镜像

$ docker image rm 镜像名/镜像id
复制代码

镜像上传

以上传至Dockerhub为例,具体步骤如下:

1.在 Dockerhub 创建一个账号,假设用户名为 yangan

2.在 Dockerhub 创建一个仓库 (比如ubuntu),用于存放上传的镜像
image.png

3.终端执行docker login --username=你的用户名 进行登录

$ docker login --username=yangan
Password:
Login Succeeded
复制代码

4.对镜像打标签(需要与仓库名匹配)

# 用法
Usage:	docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

$ docker tag ubuntu:16.04 yangan/ubuntu_test:v1
复制代码

5.执行push命令上传

# username表示用户名,tagname就是标签名 
$ docker push username/ubuntu_test:tagname

$ docker push yangan/ubuntu_test:v1
复制代码

镜像导入导出

1.镜像导出
$ docker save <image_name>:<tag> | gzip > <image_name>_<tag>.tar.gz

2.镜像导入
$ gunzip -c <image_name>_<tag>.tar.gz | docker load

2.也可以先解压为tar,再load
$ docker load < <image_name>_<tag>.tar
复制代码

容器篇

通过上面的步骤,我们已经有了镜像,接下来就可以创建容器了。

容器创建

容器创建使用docker run子命令,该子命令可以传递各种参数,从而构造出不同作用的容器。

用法:

docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

常见参数:

-it:为该容器分配一个可以交互的终端,默认是bash
--name:指定容器的名称,不指定会随机生成
-d:容器是否后台运行,如果不指定,容器退出后会自动停止
-p:指定映射的端口,第一个为宿主机端口,第二个为容器端口
-v:指定目录映射, 第一个是宿主机目录,第二个是容器目录
-e:指定环境变量参数
--rm:当容器执行完毕后自动删除该容器
--privileged:给予容器扩展权限。如果指定该参数,则容器内的root用户拥有真正的root权限;否则,容器内的root用户只是外部的一个普通用户权限。
复制代码

常见demo:

# 1.默认终端为 bash
$ docker run -it ubuntu:16.04
root@efe0291ff0c3:/# echo $SHELL
/bin/bash

# 2.指定终端
$ docker run -it ubuntu:16.04 /bin/sh
# echo $0
/bin/sh

# 3.指定用户名
$ docker run -it --name ubuntu123 ubuntu:16.04
root@b650d1846d40:/#

# 4.指定其他参数
$ docker run -it -d --name ubuntu234  -p 12007:12007 -p 9001:9001 -v /data:/data -e PYTHONIOENCODING=utf-8 ubuntu:16.04
复制代码

查看容器列表

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

# 查看所有容器
$ docker ps -a  
$ docker container ls --all 
复制代码

删除容器

$ docker container rm 容器名/容器id  

# 删除没有运行的容器和不活跃的镜像
$ docker system prune 
复制代码

进入容器

# 1.进入容器,使用exit命令退出容器不会杀死容器 
$ docker exec -it container_name /bin/bash   

# 2.进入容器,使用exit命令退出容器会杀死容器  
$ docker attach container_name  
复制代码

容器打包

其实构建镜像除了上面提到的Dockerfile,也可以在容器的基础上直接打包,使用的命令是 docker commit

$ docker commit ubuntu_test ubuntu_test:v1
复制代码

如上,该命令的意思是将 ubuntu_test 容器打包成一个镜像 ubuntu_test:v1,v1 是标签,一般用于指定版本。打包这个过程并不会影响原有容器。

容器文件拷贝

# 1.拷贝容器的文件到宿主机 (wp2md为容器名)
$ docker cp  wp2md:/exitwp/text /home/xxx/Documents/

# 2.拷贝宿主机文件到容器
$ docker cp /home/xxx/Documents/test.md wp2md:/exitwp/text 
复制代码

容器日志查看

$ docker logs -f -t --tail 行数 容器名
复制代码

整体信息篇

docker info

该命令主要用于查看本机 Docker 的基本信息,如版本、容器数量、镜像数量、镜像源等。

$ docker info
Client:
 Debug Mode: false

Server:
 Containers: 18
  Running: 8
  Paused: 0
  Stopped: 10
 Images: 30
 ...
复制代码

docker stats

该命令主要用于查看容器的资源使用情况,比如占用的CPU、内存等。默认情况下,该命令每隔 1 秒钟会刷新一次,即不断输出,直到你中断。

dea2e5f26346        linux-test          0.00%               23.41MiB / 1.952GiB   1.17%               14.3MB / 328kB      116MB / 256MB       2
ad1ad315d73f        mysql-test          0.15%               175.6MiB / 1.952GiB   8.79%               10.7kB / 0B         30.6MB / 4.1kB      27
...
复制代码

如果只想输出当前的状态信息,则需要加上 --no-stream 参数

docker stats –no-stream

如果要查看指定容器的信息,则需要加上 registry

docker stats –no-stream registry 容器id

docker system

该命令主要用于管理Docker,有四个子命令,我一般使用docker system df查看磁盘占用情况:

举例如下:

$ docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              18                  9                   6.993GB             3.749GB (53%)
Containers          12                  5                   4.051GB             584MB (14%)
Local Volumes       14                  4                   2.965GB             938MB (31%)
Build Cache         0                   0                   0B                  0B
复制代码

写在最后

各位老板,创作不易,更需不断地磨练和总结,欢迎关注我,我是言淦,为你分享各种实用的编程知识与编程技巧,你们的点赞与关注是我前进和创作的最大动力!!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享