docker
安装Docker
卸载老的版本 |
了解:卸载docker |
国内镜像加速
登录阿里云,找到容器服务,找到镜像加速地址配置使用,insecure-registries登录harbor用的 |
启停docker
systemctl daemon-reload |
镜像命令
镜像推拉harbor
docker tag [605c77e624dd/nginx][镜像id/镜像名] nginx_v2:1.2[新的镜像名称:版本] #为镜像打标签,注意id一样的删除小心 |
镜像保持导入导出,容器提交镜像
若是只想备份images,使用save、load即可 |
镜像基本命令
docker history [镜像名字:镜像版本号] / [镜像ID] |
容器命令
启动创建容器
docker run和docker create之间有两个区别 |
option | 作用 |
---|---|
-i | 以交互模式运行容器,通常与 -t 同时使用 |
-t | 启动容器后,为容器分配一个命令行,通常与 -i 同时使用 |
-v | 目录映射,容器目录挂载到宿主机目录,格式: <host目录>:<容器目录> |
-d | 守护进程,后台运行该容器 |
-p | 指定端口映射,格式:主机(宿主)端口:容器端口 |
-P | 随机端口映射,容器内部端口随机映射到主机的端口(49153起始 49153到65535) |
-u | 以什么用户身份创建容器 |
–name | “nginx-lb” 容器名字 |
-m,–memory bytes | 设置容器使用内存最大值 |
-h, –hostname string | 指定容器的 host name |
–dns 8.8.8.8 | 指定容器 dns 服务器 |
-e username=“ritchie” | 设置环境变量 |
–restart Docker | 重启后,容器是否自动重启 |
–rm | 容器退出时自动删除容器。这在临时容器中非常有用。 |
–env-file | 从文件中读取环境变量 |
–network | #指定容器运行的网络 |
–privileged | 容器内是否使用真正的 root 权限 |
使用示例
docker run|create [选项] [镜像名称|镜像ID] [容器启动后内部执行的命令] |
查看容器,启停容器,进入容器
docker ps #列出当前正在运行的容器 |
容器备份提交成镜像
若是在启动容器后,容器内容有变化,需要备份,则使用export、import、commit |
退出容器
exit #停止并退出容器(后台方式运行则仅退出) |
docker数据卷
所有的docker容器内的卷,没有指定目录的情况下都在 /var/lib/docker/volumes/ |
Dockerfile 体系结构(保留字指令)
关键字 | 说明 |
---|---|
FROM | 基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模版,第一条必须是from |
MAINTAINER | 镜像维护者的姓名和邮箱地址 |
RUN | 在镜像内部执行命令,用于安装软件包、设置环境等,第一种 shell格式RUN yum -y install vim第二种 **RUN[“可执行文件”,“参数1”,“参数2”]**,多次run的时候最好用&& |
EXPOSE | 当前容器对外暴露出的端口 |
ENV | 用来构建镜像的过程中设置环境变量 |
ADD | 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包 |
COPY | 类似ADD,拷贝文件和目录到镜像中。 第一种写法COPY src dest 第二种写法COPY [“src”, “dest”] |
ENTRYPOINT | 指定容器启动时要运行的命令,不会被 Docker run 命令覆盖,K8S参数就是command,ENTRYPOINT和CMD最在最后最后执行,ENTRYPOINT并不会像CMD那样覆盖前面的命令参数,而是会追加,如果有一个ENTRYPOINT就正常执行,如果有第二个ENTRYPOINT就追加到第一个的后面,一同执行 |
CMD | 指定容器启动时要运行的命令,可以被 Docker run 命令覆盖,K8S参数就是arg,如果存在多个CMD了话,那么只有最后一个CMD生效 |
VOLUME | 实现文件挂载功能,可以将主机目录挂载到容器中,一般的使用场景为需要持久化存储数据时 |
USER | 指定该镜像以什么样的用户去执行,如果不指定,默认是root |
WORKDIR | 指定在创建容器后,终端默认进入后的目录 |
ARG | 定义构建时的参数 |
ONBUILD | 在当前镜像被用作其他镜像的基础镜像时执行一些命令,通常用于构建通用的基础镜像 |
STOPSIGNAL | 指定容器停止时发送的信号 |
HEALTHCHECK | 指定容器健康检查命令,判断容器是否存活并运行 |
SHELL | 定义默认的 shell,或者在 RUN 指令中覆盖默认 shell |
docker cmd entrypoint区别 |
Dockerfile案例
制作镜像案例1 centos7 添加环境变量添加vim,ipconfig,配置阿里源 |
dockerfile制作碰到问题
centos7需要下载镜像源docker run运行的容器可以访问外网,dockerfile制作镜像的时候访问不了,构建镜像不会改变bridge容器网络 |
docker网络
1.自动分配IP地址:Docker能够为每个容器分配一个独立的IP地址,使得容器之间可以通过IP地址进行通信。 |
评论