ToB企服应用市场:ToB评测及商务社交产业平台

标题: Docker 基础 - 2 [打印本页]

作者: 锦通    时间: 2023-2-2 20:24
标题: Docker 基础 - 2
容器操作系统类型

Busybox

集成了一百多个最常用 Linux 命令和工具的软件工具箱.
包含cat echo grep find mount telnet 等
Busybox 是Linux 系统的瑞士军刀
Debian/Ubuntu

CentOS/Fedora

CoreOS

官网链接
Linux发行版, 针对容器技术.
创建自定义操作系统的镜像

基于commit 命令创建

支持用户提交自己对容器的修改, 并生成新的镜像. 命令格式为:
docker commit CONTAINER [REPOSITORY[:TAG]]
创建步骤

保存镜像

sudo docker commit  ubuntu-sshd
启动镜像

sudo docker run -p 10122:22 -d ubuntu /run.sh
使用

可以通过 ssh 服务进行连接
ssh  -p 10122 -l root
使用 Dockerfile 创建(重点关注)

Docker hun 上我的ubuntu-sshd镜像
Dockerfile示例
  1. ## OS镜像
  2. FROM ubuntu:16.04
  3. ## 维护者
  4. LABEL maintainer="CaseyCui cuikaidong@foxmail.com"
  5. ## 1. 备份官方源
  6. ## 2. 创建/var/run/sshd文件夹(正常启动SSH服务需要)
  7. ## 3. 创建root用户目录下.ssh目录
  8. RUN mv /etc/apt/sources.list /etc/apt/sources.list.default \
  9.     && mkdir -p /var/run/sshd \
  10.     && mkdir -p /root/.ssh
  11. ## 拷贝阿里镜像源信息到/etc/apt/sources.list
  12. COPY sources.list /etc/apt/sources.list
  13. ## 拷贝公钥到/root/.ssh目录
  14. COPY authorized_keys /root/.ssh/authorized_keys
  15. ## 拷贝运行脚本run-sshd.sh到根目录下
  16. COPY run-sshd.sh /run-sshd.sh
  17. ## 1. 安装openssh-server
  18. ## 2. 修改时区为**中国/上海**(ubuntu新版本需要安装 *tzdata*,通过**链接**方式使之生效)
  19. ## 3. 修改SSH服务的安全登录配置,取消pam登录限制
  20. ## 4. run-sshd.sh增加执行权限
  21. RUN apt-get update \
  22.     && DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \
  23.         openssh-server \
  24.         tzdata \
  25.     && rm -rf /var/lib/apt/lists/* \
  26.     && ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  27.     && dpkg-reconfigure -f noninteractive tzdata \  
  28.     && sed -ri 's/session    required     pam_loginuid.so/#session    required     pam_loginuid.so/g' /etc/pam.d/sshd \
  29.     && chmod +x /run-sshd.sh
  30. ## 开放端口
  31. EXPOSE 22
  32. ## 增加挂载点/tmp
  33. VOLUME /tmp
  34. ## 设置启动命令
  35. CMD ["/run-sshd.sh"]
复制代码
自动化修改时区
ubuntu 16.04 之前:
echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
ubuntu 16.04 及之后:
&& ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  && dpkg-reconfigure -f noninteractive tzdata
前提: 需要安装 tzdata 包:
apt-get -yq install tzdata
ENV 环境变量
ENV环境变量全局生效, 有时可能会有负面效果.
如: ENV DEBIAN_FRONTEND noninteractive 会把所有操作设置为非交互式的.
尽量不要像上边那样使用, 建议的用法是: 在有需要时, 和执行的命令一起执行, 如:
  1. RUN apt-get update && \
  2.     DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends tzdata # -q: quiet
复制代码
.dockerignore文件
  1. ## 忽略文件夹 .git/
  2. .git
  3. ## 忽略临时文件
  4. *.swp
复制代码
run.sh 脚本
  1. ##!/bin/bash
  2. /usr/sbin/sshd -D
复制代码
创建镜像

在 Dockerfile 目录下执行:
sudo docker build -t caseycui/ubuntu-sshd .
三人行, 必有我师; 知识共享, 天下为公.  本文由东风微鸣技术博客 EWhisper.cn 编写.

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4