我是一個PHP開發人員,所以大部分時間用於測試,我對我做什麼工作的任何應用程序是:搭載Vmware並轉移到Docker,如何正確設置Dockerfile或cointainer?
- 創建VMware虛擬機,並安裝一個完整的操作系統:大部分時間我喜歡用的CentOS在虛擬機上的意義
- 設置的一切:Apache和模塊,PHP和模塊和MySQL或MariaDB的
每當我從頭開始一個新的虛擬機有幾個步驟,我跑:
# Install EPEL and Remi Repos
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
wget http://rpms.remirepo.net/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6.rpm epel-release-latest-6.noarch.rpm
# Install Apache, PHP and its dependencies
yum -y install php php-common php-cli php-fpm php-gd php-intl php-mbstring php-mcrypt php-opcache php-pdo php-pear php-pecl-apcu php-imagick php-pecl-xdebug php-pgsql php-xml php-mysqlnd php-pecl-zip php-process php-soap
# Start Apache on 235 run level
chkconfig --levels 235 httpd on
# Setup MariaDB repos
nano /etc/yum.repos.d/MariaDB.repo
# Write this inside the MariaDB.repo file
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
# Install MariaDB
yum -y install MariaDB MariaDB-server
# Start service
service mysql start
# Start MariaDB on run level 235
chkconfig --levels 235 mysql on
# Setup MariaDB (this is interactive)
/usr/bin/mysql_secure_installation
# A few more steps
這是令人討厭的任務,我需要一直做下去(當我把虛擬機嘗試新事物並在這裏和那裏改變時。所以我認爲,Docker在這裏是爲了節省。閱讀了一些後,我知道了Docker的基本知識,並通過運行docker run -it centos
來獲取CentOS映像,但這只是一個bash shell和一個基本的CentOS映像,所以我的任務是安裝&安裝所有東西。
下面是我對碼頭工人和疑慮如何處理這種重複,共同的任務:
我應該創建一個Dockerfile(這是我第Dockerfile所以可能的順序是不正確的或者我完成錯誤)與下面的內容,並把所有重複的任務
run-setup.sh
文件?FROM centos:latest MAINTAINER MyName <MyEmail> RUN yum -y update && yum clean all ADD run-setup.sh /run-setup.sh RUN chmod -v +x /run-setup.sh CMD ["/run-setup.sh"] EXPOSE 80
我應該像在VM上那樣手動執行重複任務嗎?
- 命令
/usr/bin/mysql_secure_installation
是完整的互動,因爲我需要回答幾個問題並設置密碼,如何處理這一個或任何其他交互? - 有什麼更好的想法?
好的,我使用的Dockerfile建議我開始看到一些和創建自己的。我會將我的映像推送到Docker集線器,以便任何人都可以使用它,但我需要先結束並測試;)。由於我不是bash腳本專家,所以我被困在步驟(3)中,所以我將進一步研究這一點,讓我們看看我能做些什麼。當然,我會盡快使用自動構建。 – ReynierPM
如果您認爲您已完成此操作,請將其標記爲答案:) – Maniankara