欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

从docker到k8s进阶

程序员文章站 2022-07-14 09:27:33
...

一:基本命令

查看镜像列表:docker images 或者 docker image ls
查看运行的容器:docker container ls 或者docker ps
查看所有容器:docker container ls --all 或者 docker ps -a
查看存储情况:docker system df
运行某个容器:docker start 容器ID/名称
重启某个容器:docker restart 容器ID/名称
停止某个容器:docker stop 容器ID/名称
删除容器:docker rm [-f] 容器ID/名称 (-f可以强制删除正在运行的容器)
删除镜像:docker image rm 镜像名称[:tag] 或者 docker image rm 镜像ID (image rm可以缩写为rmi)
查看某个容器日志:docker logs [-f] 容器ID
进入某个容器:docker exec -it 容器ID/名称 /bin/bash
查看镜像历史提交记录:docker history nginx[:标签]
删除所有容器:docker rm -f $(docker ps -aq) (括号里面的内容是列出所有容器ID)

二:获取镜像

官方提供了公共的镜像仓库:https://hub.docker.com/,我们可以使用命令docker pull从这获取镜像,格式为:

docker pull [选项] [Docker Registry 地址[:端口]/]仓库名[:标签]

Docker镜像仓库地址:地址格式一般是<域名/IP>[:端口],默认是Docker Hub。
仓库名:两段式名称<用户名>/<软件名>,若地址是Docker Hub,不显示写出用户名,默认为library,即官方镜像。
从docker到k8s进阶

三:运行容器

docker run --name myUbuntu -it --rm ubuntu:16.04 /bin/bash

–rm:退出容器后删除容器
–name:给容器取别名(例如上面的myUbuntu)
-it:以交互方式进入容器

从docker到k8s进阶
–name:给容器取别名(例如上面的my_nginx)
-d:后台运行
-p 80:80:将宿主机端口和容器端口映射在一起

四:简单制作镜像

docker commit --author "Mr.nobody" --message "简单修改默认首页"  my_nginx nginx:v1.0

以my_nginx这个容器为基础,定制新的镜像nginx:v1.0

五:制作镜像

以下以nginx镜像为基础,并且修改nginx首页页面内容,来制作新的镜像nginx:v2.0。

1:新建文件夹,并且进入该文件,再创建Dockerfile文件。

mkdir mynginx
cd mynginx
touch Dockerfile

2:编辑Dockerfile文件,输入以下内容并且保存。

FROM nginx

RUN echo '<h1>Hello My New Nginx!' > /usr/share/nginx/html/index.html

Dockerfile是一个文本文件,包含了一条条指令,每条指令构建一层,描述该层应当如何构建。
FROM 代表要继承哪个基础镜像,FROM scratch 代表不继承任何镜像。FROM是必备的指令,并且必须是第一条指令。
RUN 代表要执行的脚本。可以有多个RUN,一个RUN代表一层。可以将多个脚本命令通过 && 连接起来用一个RUN,这样就只有一层。

3:构建镜像
在当前文件夹mynginx路径下,执行以下命令:

docker build -t nginx:v2.0 .

命令最后有一个“.”,代表将当前构建上下文发送给Docker服务端。从构建输出的日志 Sending build context to Docker daemon 就可以看出。这就是为什么我们首先要创建一个空文件夹(实践中一般在项目根目录),如若在根目录创建Dockerfile文件,会把很多东西甚至整个硬盘的文件都打包发给Docker daemon。这样打包文件会很大而且很慢。

构建完就可以通过docker images命令查看生成的镜像了。

如若不想将某些文件打包,可以在文件夹下创建.dockerignore文件,在文件里面输入要忽略的文件全名(包括后缀)。

六:归档压缩和加载镜像

有时我们需要将镜像从一个服务器放到其他服务器,可以先归档压缩,然后发给另一个服务器再加载。
归档压缩

docker save nginx:v2.0 | gzip > nginx.v2.0.tar.gz

加载

docker load -i nginx.v2.0.tar.gz
相关标签: Docker docker