[Share Experiences] docker 的 Dockerfile 简单使用
Tofloor
poster avatar
酷谷的谷子
deepin
2023-06-06 18:18
Author

https://note.youdao.com/s/SbCaFu4a
下面是编译一个容器更新镜像 安装 ssh
FROM ubuntu:22.04 表示依赖那个版本创建镜像
MAINTAINER i8520 表示作者信息
COPY 的使用 $HOME/桌面/123文件或文件夹 复制到镜像里的/data
COPY $HOME/桌面/123 /data
ENV NAME_A="123" 表示变量全局可用 Dockerfile文件内 或者镜像里
RUN apt update && apt upgrade -y 表示执行系镜像更新
RUN echo '123' > /home/123.txt 执行一条命令把 123添加到镜像中的 /home/123.txt
RUN apt install -y init 表示安装用于启动容器自启动服务
CMD ["/sbin/init"] 表示系统 参数

使用 apt 包管理的 Linux发行版 把下面代码保存在Dockerfile文件

FROM ubuntu:22.04
MAINTAINER i8520
RUN apt update -y && apt upgrade -y && apt install  -y --assume-yes apt-utils
RUN apt install -y init openssh-server vim libc-ares2 sudo
RUN echo '123' > /home/123.txt
CMD ["/sbin/init"]

使用 yum 包管理的 Linux发行版把下面代码保存在Dockerfile文件
RUN rpm --rebuilddb && yum install initscripts 表示安装用于启动容器自启动服务

FROM centos:centos7.9.2009
MAINTAINER i8520
RUN rpm --rebuilddb && yum update -y && yum upgrade -y
RUN rpm --rebuilddb && yum install initscripts passwd openssl openssh-server -y
RUN echo '123' > /home/123.txt
CMD ["/usr/sbin/init"]

使用方式:cd 到存有 Dockerfile 文件的目录 执行 docker build .
给刚才编译的镜像 取个名字 先查看一下当前本地镜像 docker images
看到类似这样的 ec8a82b790b4
docker tag <镜像名字只能小写字母>
docker tag ec8a82b790b4 abc

给刚才编译的镜像创建容器

#容器的名字
CONTAINER_NAME="ABCD"
#刚才创建镜像修改的名字
NEW_IMAGES_NAME="abc"
REPOSITORY_TAG_NAME="${NEW_IMAGES_NAME}:latest"
#映射到宿主机的端口
PORT_A="-p 1892:1892 -p 1893:22"
#映射文件夹 宿主机${HOME}/data映射到容器/data
VOLUME_A="-v ${HOME}/data:/data"
VOLUME_B="-v ${HOME}/www:/www"
#提权
#xx_init='/sbin/init'
docker run  -d --name ${CONTAINER_NAME} ${PORT_A} \
--privileged=true ${VOLUME_A} ${VOLUME_B} ${REPOSITORY_TAG_NAME}
Reply Favorite View the author
All Replies
donaldsebleung
deepin
2023-06-06 20:33
#1

感谢分享kissing_heart

Reply View the author
阿尼樱奈奈
Moderator
2023-06-06 23:24
#2

like

Reply View the author