容器深入浅出学习--Docker常用指令
前面我们了解了docker的基本概念,和docker镜像,端口相关的内容。在具体的实际操作过程中,我们需要了解一些相关的docker操作指令。
一.Docker save指令
指令功能:将指定镜像保存为tar归档文件
语法:
docker sava [OPTIONS] IMAGE [IMAGE ....]
OPTIONS说明:
-o:输出到的文件
第一个IMAGE是保存的tar文件名称,第二个是docker image要打包的镜像
例子:我们将yushengyin/centos:6.7
生成yushengyin.tar
[root@k8s-01 docker]# docker save -o yushengyin.tar yushengyin/centos:6.7
[root@k8s-01 docker]# ll -ah yushengyin.tar
-rw-------. 1 root root 189M Dec 20 22:01 yushengyin.tar
镜像导出后,如果需要导入,我们采用下面的指令:
docker load < xxx.tar
[root@k8s-02 ~]# docker load < yushengyin.tar
69bd93b9db4e: Loading layer [==================================================>] 197.1MB/197.1MB
c0bfb5adb9d6: Loading layer [==================================================>] 6.656kB/6.656kB
c83576a0a294: Loading layer [==================================================>] 18.94kB/18.94kB
7d3ad8e4090d: Loading layer [==================================================>] 6.656kB/6.656kB
95c00c575db8: Loading layer [==================================================>] 3.072kB/3.072kB
Loaded image: yushengyin/centos:6.7
[root@k8s-02 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yushengyin/centos 6.7 4f2531db0da1 About an hour ago 191MB
二.Docker logs命令
在使用容器的过程中,我们通常需要查看容器运行的一些日志信息来定位和排查问题:
指令功能:获取容器的日志
OPTIONS说明:
-f:跟踪日志输出
--since:显示某个开始时间的所有日志
-t:显示时间戳
--tail:仅列出最新N条容器日志
例如,查看容器cb2ea5793288从2018年12月20号后的最新10条日志
[root@k8s-01 docker]# docker logs --since="2018-12-20" --tail=10 cb2ea5793288
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
192.168.30.42 - - [20/Dec/2018 09:08:01] "GET / HTTP/1.1" 200 -
192.168.30.42 - - [20/Dec/2018 09:08:01] "GET /favicon.ico HTTP/1.1" 404 -
三.Docker rm命令
命令功能:删除一个或多个容器
语法:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS说明:
-f:通过SIGKILL信号强制删除一个运行中的容器
-l:移除容器间的网络连接,而非容器本身
-v:删除与容器关联的卷
例如:
[root@k8s-01 docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d32fd27a6068 modify/webapp:v3 "python app.py" About an hour ago Up About an hour 0.0.0.0:32769->5000/tcp lijing
[root@k8s-01 docker]# docker rm d32fd27a6068
Error response from daemon: You cannot remove a running container d32fd27a6068a16a4848a9148376475a9400485223a24fd7769b1fec3662caed. Stop the container before attempting removal or force remove
[root@k8s-01 docker]# docker rm -f d32fd27a6068
d32fd27a6068
四.Docker cp命令
命令功能:用于容器与主机之间的数据拷贝
语法:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
例如:
将主机/www/cephfs_dir目录拷贝到容器747e9e0a7d61的/var目录
[root@k8s-01 ~]# docker cp /root/cephfs_dir 747e9e0a7d61:/var/
将容器747e9e0a7d61的/var/log目录拷贝到主机的/root/cephfs_dir目录下:
[root@k8s-01 ~]# docker cp 747e9e0a7d61:/var/log /root/cephfs_dir/
五.Docker diff命令
命令功能:检查容器内文件结构的更改
语法:
docker diff [OPTIONS] CONTAINER
例如我们查看上面容器747e9e0a7d61的文件结构更改:
[root@k8s-01 cephfs_dir]# docker diff 747e9e0a7d61
C /var
A /var/cephfs_dir
A /var/cephfs_dir/cephfs-pvc.yaml
A /var/cephfs_dir/cephfspod.yaml
A /var/cephfs_dir/cephfspod2.yaml
A /var/cephfs_dir/ceph-secret.yaml
A /var/cephfs_dir/cephfs-pod.yaml
A /var/cephfs_dir/cephfs-pod1.yaml
A /var/cephfs_dir/cephfs-pv.yaml
六.Docker镜像管理之Docker rmi命令
命令功能:删除本地一个或多少镜像
语法:
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS说明:
-f:强制删除
--no-prune:不移除该镜像的过程镜像,默认移除
例如:
注意删除时,指定镜像的REPOSITORY:TAG
[root@k8s-01 cephfs_dir]# docker rmi yushengyin/centos:dev