docker镜像练习
构建SSH镜像
mkdir /opt/sshdcd /opt/sshd
vim Dockerfile第一行必须指明基于的基础镜像FROM centos:7作者信息MAINTAINER this is ssh image < jd 2022-3-9>镜像的操作指令RUN yum -y updateRUN yum -y install openssh* net-tools lsof telnet passwdRUN echo ' abc1234' | passwd --stdin rootRUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd config不使用PAM认证RUN sed -ri ' /^session\s+required\s+pam _loginuid.so/ s/^/#/' /etc/pam. d/ sshd取消pam限制RUN ssh-keygen -t rsa -A生成密钥认证文件RUN mkdir -p /root/ .ssh && chown root. root /root && chmod 700 /root/ . sshEXPOSE 22CMD ["/usr/sbin/sshd" ,"-D"]/usr/sbin/sshd -D用于前台启动sshd服务
//生成镜像docker build -t sshd: centos .
//启动容器并修改root密码docker run -d -P sshd: centosdocker ps -assh localhost -p 49155
Systemctl镜像
------------------------------Systemct1镜像-------------------------------------- -
mkdir /opt/systemctl
cd /opt/systemctl
vim Dockerfile
FROM sshd: centos
MAINTAINER this is systemctl image
ENV container docker
#除了systemd- tmpfiles-setup. service,删除其它所有文件
RUN (cd /1ib/ systemd/system/ sysinit. target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] | rm -f $i;
done) ; \
rm -f /lib/ systemd/ system/ multi-user. target. wants/*; \
rm -f /etc/systemd/system/* . wants/*; \
rm -f /1ib/systemd/system/ local-fs. target .wants/*; \
rm -f /lib/ systemd/ system/ sockets. target . wants/*udev*; \
rm -f /lib/ systemd/ system/ sockets. target . wants/*initct1*; \
:m -f /lib/ systemd/ system/basic. target. wants/*;\
rm -f /lib/ systemd/ sys tem/ anaconda. target . wants/*;
VOLUME [ "/sys/ fs/ cgroup",
#CMD ["/usr/sbin/init"]
//生成镜像
docker build -t systemd: centos
//启动容器,并挂载宿主机目录挂载到容器中,和进行初始化
docker run --privileged -d -P -V /sys/ fs/ cgroup: /sys/ fs/ cgroup:ro systemd:centos /sbin/init
#--privileged:使container内 的root拥有真正的root权限。否则,container 内的root只是外部的一个 普通用户权限。
docker ps -a
//进入容器
docker exec -it a0d624d2bfa9 bash
systemctl status sshd
方法二:
docker run --privileged -it -P -v /sys/fs/ cgroup:/sys/ fs/cgroup:ro systemd: centos /sbin/init &
nginx镜像
------------------------------nginx镜像------------------------------------------
mkdir /opt/nginx
cd /opt/nginx/
cp /opt/nginx-1.12.0.tar.gz /opt/nginx
vim Dockerfile
#基于基础镜像
FROM centos: 7
#用户信息
MAINTAINER this is nginx image
#添加环境包
RUN yum -Y update
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
RUN useradd -M -S /sbin/nologin nginx
#上传nginx软件压缩包,并解压
ADD nginx-1.12.0.tar.gz /opt/
#指定工作目录
WORKDIR /opt/nginx-1.12.0
RUN . /configure \
--prefix=/usr/local/nginx \
--user=nginx \
- -group=nginx \
--with-stub_ status_ module && make && make install
ENV PATH /usr/ local/nginx/sbin: $PATH
#指定http和https端口
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;" >> /usr/ local/nginx/conf/nginx. conf
#关闭nginx 在后台运行
#添加宿主机中run.sh到容器中
ADD run.sh / run.sh .
RUN chmod 755 / run.sh
CMD ["/run. sh"]
#CMD ["/usr/local/sbin/nginx", "-g", "daemon off;"]
vim run. sh
#! /bin/bash
/usr/local/nginx/ sbin/nginx
//创建新镜像
docker build -t nginx:centos .
docker run -d -P nginx:centos
docker ps -a
5df9e4383b96
nginx: centos
"/ run. sh"
15 seconds ago
Up 15 seconds
0.0.0.0:32769->80/tcp, 0.0.0.0:32768->443/tcp .
silly_ davinci
http://192.168.80.10:32769
构建tomcat镜像
构建mysql镜像
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~