如何在自己的网站上做直播,湖南网站建设,阿里巴巴官网,电子商务网站对比分析Docker笔记
1. Dockerfile编译构建docker
Dockerfile 是一个文本文件#xff0c;包含了构建 Docker 镜像的所有指令。 Dockerfile 常用的有如下关键字#xff1a; FROM#xff1a;指定基础镜像#xff0c;后续定制操作都是基于这个基础镜像#xff0c;比如#xff1a; …Docker笔记
1. Dockerfile编译构建docker
Dockerfile 是一个文本文件包含了构建 Docker 镜像的所有指令。 Dockerfile 常用的有如下关键字 FROM指定基础镜像后续定制操作都是基于这个基础镜像比如
FROM ubuntu:20.04
FROM nginx
FROM centosARG定义在构建过程中传递给构建器的变量可使用 “docker build” 命令设置。
# 参数
ARG USER_NAME
ARG USER_PASSWDENV在容器内部设置环境变量。比如
ENV PATH/home/${USER_NAME}/.local/bin/*:${PATH}RUN用于执行后面跟着的命令行命令比如
RUN echo root:${USER_PASSWD} | chpasswd \ echo debconf debconf/frontend select Noninteractive | debconf-set-selections \# sed -i shttp://.*archive.ubuntu.comhttp://mirrors.aliyun.comg /etc/apt/sources.list \# sed -i shttp://.*security.ubuntu.comhttp://mirrors.aliyun.comg /etc/apt/sources.list \ apt-get -y update \ apt-get install -y --no-install-recommends \build-essential \automakeDockerfile 的指令每执行一次都会在 docker 上新建一层所以尽量减少指令可以使用 追加操作。
COPY将文件或目录复制到镜像中。
COPY early_boot.sh /docker-entrypoint.d/early_boot.sh
COPY sudo.expect /docker-entrypoint.d/sudo.expectENTRYPOINT设置容器创建时的主要命令。
ENTRYPOINT [ /docker-entrypoint.d/early_boot.sh ]有了dockerfile文件以后就可以构建docker:
docker build \--build-arg USER_NAME${USER_NAME} \--build-arg USER_PASSWD${USER_PASSWD} \-t ubuntu-build:v1.0.0 .Dockerfile中设置的ARG 参数可以通过编译时候的–build-arg 传递。
如果构建成功那么就可以在本地看到一个ubuntu-build:v1.0.0的docker镜像。
如果需要将本地镜像推送到dockerhub上需要先打tag然后再推送
docker tag ubuntu-build:v1.0.0 myusername/ubuntu-build:latest
docker push myusername/ubuntu-build:latest2. 运行docker和常用参数
查看本地docker 镜像
docker images查看正在运行的docker
docker ps -a运行docker docker run \--rm \-it \--privileged \--name ${docker_name} \-w / \-v /home:/home \-v /mnt:/mnt \myusername/ubuntu-build:latest \$cmd–rm : 当容器退出时自动删除该容器。这样可以避免因为过多无用的退出容器占用过多磁盘空间 -it 使容器的标准输入保持打开为容器分配一个伪终端常常用来使容器模拟成一个交互式应用。 –privileged给予容器一些特权使其具有类似于宿主机的能力例如访问宿主机的硬件设备。 –name为创建的容器指定一个名称为 ${docker_name} -w设置容器的工作目录为 / -v将宿主机的 /home 目录挂载到容器的 /home 目录使容器可以访问和修改这个目录中的文件 $cmd 这是在容器中运行的命令这个参数也是一个环境变量你需要在运行这个命令之前进行定义。如果省略这个参数容器会运行默认的命令通常是 /bin/bash