一個dockerfile例子(參考著寫dockerfile)

InventorMAO發表於2021-01-03

#拉取一個基礎的景象
FROM ubuntu:16.04

#更換源
COPY sources.list /etc/apt/sources.list

#docker cp wordpress-4.6.zip 容器ID或者容器名字:/root
COPY wordpress-4.6.zip /root/wordpress-4.6.zip

#build: cd a; docker build -t test .
#互動的方式啟動映象 docker run -it test /bin/bash

RUN apt-get update -y
RUN apt-get install -y apache2 php7.0 php7.0-mysql libapache2-mod-php7.0 iputils-ping net-tools unzip openssh-server sudo gcc

#通過debconf-set-selections 提前設定mysql的root密碼,這樣mysql可以靜默安裝
RUN echo “mysql-server mysql-server/root_password password 123456” | debconf-set-selections
RUN echo “mysql-server mysql-server/root_password_again password 123456” | debconf-set-selections
RUN apt-get install -y mysql-server

# service apache2 start | stop | status
# service ssh start | stop | status

#指定工作目錄
WORKDIR /root

#安裝wordpress
RUN unzip wordpress-4.6.zip
#apache /var/www/html
RUN mv wordpress /var/www/html

COPY about.html /var/www/html
COPY robot.txt /var/www/html
COPY password.txt /var/www/html

#新增使用者
RUN mkdir -p /home/lisi #建立目錄
RUN useradd -s /bin/bash -d /home/lisi lisi #建立使用者
RUN echo “lisi:123456” | chpasswd #無互動的修改密碼
RUN chown lisi:lisi /home/lisi #修改home目錄的許可權 root
RUN echo “here_is_flag_2” >> /home/lisi/flag2

#新增sudo許可權
RUN chmod +w /etc/sudoers
RUN echo “lisi ALL=(ALL:ALL) ALL” >> /etc/sudoers
RUN echo “HERE_IS_FLAG_3” > /root/flag3

#啟動指令碼
# docker 容器本身就是一個程式。如果程式裡面有沒有讓程式持續執行的指令,那麼程式就會退出。 死迴圈/ping
# ls 列印完當前路徑的內容,然後就退出
# ping www.baidu.com 沒有指定次數,那麼他就持續執行

#啟動指令碼
COPY run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]

#docker build -t test .
#docker images
#docker run -d --rm --name test -p 9090:80 -p 2222:22 test
#docker ps -a
#docker exec -it test /bin/bash

相關文章