删除none状态退出的镜像
vim abc.txt
#!/bin/bash
docker ps -a | grep "Exited" | awk '{print $1}' |xargs docker stop
docker ps -a | grep "Exited" | awk '{print $1}' |xargs docker rm
docker images | grep none|awk '{print $3}' | xargs docker rmi
docker images | awk '{print $3}' | xargs docker rmi
docker build -t 镜像名 .
docker run -d -P 镜像名字
-d 守护进程
-P 随机映射端口
----------------------nginx镜像------------------------------
vim Dockerfile
#基础镜像
FROM centos:7
#用户信息
MAINTAINER this is nginx images
#添加环境包
RUN yum -y update
RUN yum install gcc gcc-c++ pcre-devel zlib-devel make -y
RUN useradd -M -s /sbin/nologin nginx
#下载nginx软件包
ADD nginx-1.12.2.tar.gz /opt
WORKDIR /opt
#指定工作目录
WORKDIR nginx-1.12.2
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
RUN 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
#添加宿主机中run.sh到容器中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
vim run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx
----------------------------------SSH镜像----------------
vim Dockerfile
cd /opt
mkdir sshd
cd sshd
FROM centos
MAINTAINER The Centos Project <cloud centos>
RUN yum -y update
RUN yum -y install openssh* net-tools lsof telnet passwd
RUN echo '123456' | passwd --stdin root
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN sed -i '/^session\s\+required\s\+pam_loginuid.so/s/^/#/' /etc/pam.d/sshd
RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh
EXPOSE 22
CMD ["/usr/sbin/sshd","-D"]
生成镜像
docker build -t sshd:new
启动容器并修改root密码
docker run -d -P sshd:new
ssh localhost -p 32771
-----------------------------Tomcat镜像-----------------------
vim Dockerfile
FROM centos:7
MAINTAINER this is tomcat
RUN yum -y update
COPY jdk-8u201-linux-x64.rpm /opt/
RUN rpm -ivh /opt/jdk-8u201-linux-x64.rpm
ENV JAVA_HOME /usr/java/jdk1.8.0_201-amd64
ENV CLASSPATH $JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
ENV PATH $JAVA_HOME/bin:$PATH
ADD apache-tomcat-9.0.16.tar.gz /opt/tomcat
RUN mv /opt/tomcat/apache-tomcat-9.0.16/ /usr/local/tomcat
EXPOSE 8080
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]
---------------------------------mysq镜像l----------------------------
vim Dockerfile
FROM centos:7
MAINTAINER This is MySQL Project
RUN yum -y update
RUN yum install -y ncurses-devel autoconf cmake tar gcc gcc-c++ make pcre-devel expat-devel pcre
COPY mysql-5.6.26.tar.gz /opt
RUN tar zxvf /opt/mysql-5.6.26.tar.gz -C /opt
WORKDIR /opt/mysql-5.6.26
RUN cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
RUN make && make install
RUN rm -f /etc/my.cnf
RUN cp /opt/mysql-5.6.26/support-files/my-default.cnf /etc/my.cnf
RUN cp /opt/mysql-5.6.26/support-files/mysql.server /etc/init.d/mysqld
RUN chmod 755 /etc/init.d/mysqld
ENV PATH $PATH:/usr/local/mysql/bin
RUN useradd -s /sbin/nologin mysql
RUN chown -R mysql:mysql /usr/local/mysql/
RUN /usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql
RUN ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock
RUN sed -i '46 s/basedir=/basedir=\/usr\/local\/mysql/' /etc/init.d/mysqld
RUN sed -i '47 s/datadir=/datadir=\/home\/mysql/' /etc/init.d/mysqld
WORKDIR /root
run rm -f /opt/mysql-5.6.26.tar.gz
EXPOSE 3306
CMD ["mysqld_safe"]
-------------------------------systemctl镜像-------------------------------
vim Dockerfile
FROM centos:7
ENV container docker
RUN (cd /lib/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 /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*; \
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME ["sys/fs/cgroup"]
CMD ["/usr/sbin/init"]