Docker同時啟動多個服務

2021-09-19 23:31:17 字數 3749 閱讀 9144

前幾篇docker的文章介紹啟動容器時都是只啟動乙個後台服務,今天來說說怎樣通過supervisor來啟動多個服務

1. 首先建立乙個目錄並在目錄下建立乙個dockerfile,檔案內容如下

from centos:centos6maintainer fanbin kong "[email protected]"run rpm -ivh  yum install -y openssh-server sudo mysql-server mysql supervisorrun sed -i 's/usepam yes/usepam no/g' /etc/ssh/sshd_config  run useradd adminrun echo "admin:admin" | chpasswdrun echo "admin   all=(all)       all" >> /etc/sudoers run ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_keyrun ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_keyrun mkdir /var/run/sshdrun /etc/init.d/mysqld start &&\    mysql -e "grant all privileges on *.* to 'root'@'%' identified by 'letmein';"&&\    mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by 'letmein';"&&\    mysql -u root -pletmein -e "show databases;"run mkdir -p /var/log/supervisorcopy supervisord.conf /etc/supervisord.confexpose 22 3306cmd ["/usr/bin/supervisord"]

2. 在dockerfile所在目錄下建立supervisord.conf檔案,內容如下:

[supervisord]nodaemon=true[program:sshd]command=/usr/sbin/sshd -d[program:mysqld]command=/usr/bin/mysqld_safe

3. 在dockerfile所在目錄下執行build命令來生成image檔案,這裡使用mysql_server作為image檔名

sudo docker build -t myserver .

4. 啟動容器

4.1 首先使用下面的命令來啟動容器

sudo docker run --name=myserver -d -p myserver

4.2 啟動完容器後,可以使用「sudo docker ps」來檢視,此時可以看ports列內容為

「0.0.0.0:49171->22/tcp, 0.0.0.0:49172->3306/tcp」

容器的22埠和3306埠會被對映到宿主機器的49171和49172埠。

4.3 此時就可以通過下面的命令來訪問ssh和mysql服務了

ssh admin@《宿主機器》 -p 《宿主機器埠》mysql -h 《宿主機器》 -u root -pletmein -p 49172

4.4 當然也可以使用「sudo docker inspect myserver | grep ipaddress」來檢視容器ip位址,然後通過下面命令訪問ssh和mysql服務

ssh admin@《容器機器ip> mysql -h 《容器機器ip> -u root -pletmein

前幾篇docker的文章介紹啟動容器時都是只啟動乙個後台服務,今天來說說怎樣通過supervisor來啟動多個服務

1. 首先建立乙個目錄並在目錄下建立乙個dockerfile,檔案內容如下

from centos:centos6maintainer fanbin kong "[email protected]"run rpm -ivh  yum install -y openssh-server sudo mysql-server mysql supervisorrun sed -i 's/usepam yes/usepam no/g' /etc/ssh/sshd_config  run useradd adminrun echo "admin:admin" | chpasswdrun echo "admin   all=(all)       all" >> /etc/sudoers run ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_keyrun ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_keyrun mkdir /var/run/sshdrun /etc/init.d/mysqld start &&\    mysql -e "grant all privileges on *.* to 'root'@'%' identified by 'letmein';"&&\    mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by 'letmein';"&&\    mysql -u root -pletmein -e "show databases;"run mkdir -p /var/log/supervisorcopy supervisord.conf /etc/supervisord.confexpose 22 3306cmd ["/usr/bin/supervisord"]

2. 在dockerfile所在目錄下建立supervisord.conf檔案,內容如下:

[supervisord]nodaemon=true[program:sshd]command=/usr/sbin/sshd -d[program:mysqld]command=/usr/bin/mysqld_safe

3. 在dockerfile所在目錄下執行build命令來生成image檔案,這裡使用mysql_server作為image檔名

sudo docker build -t myserver .

4. 啟動容器

4.1 首先使用下面的命令來啟動容器

sudo docker run --name=myserver -d -p myserver

4.2 啟動完容器後,可以使用「sudo docker ps」來檢視,此時可以看ports列內容為

「0.0.0.0:49171->22/tcp, 0.0.0.0:49172->3306/tcp」

容器的22埠和3306埠會被對映到宿主機器的49171和49172埠。

4.3 此時就可以通過下面的命令來訪問ssh和mysql服務了

ssh admin@《宿主機器》 -p 《宿主機器埠》mysql -h 《宿主機器》 -u root -pletmein -p 49172

4.4 當然也可以使用「sudo docker inspect myserver | grep ipaddress」來檢視容器ip位址,然後通過下面命令訪問ssh和mysql服務

ssh admin@《容器機器ip> mysql -h 《容器機器ip> -u root -pletmein

Docker同時啟動多個服務

前幾篇docker的文章介紹啟動容器時都是只啟動乙個後台服務,今天來說說怎樣通過supervisor來啟動多個服務 1.首先建立乙個目錄並在目錄下建立乙個dockerfile,檔案內容如下 from centos centos6maintainer fanbin kong kongxx hotmai...

同時啟動多個Tomcat伺服器

1 修改http訪問埠 預設為8080埠 connector classname org.apache.coyote.tomcat4.coyoteconnector port 8080 5 maxprocessors 75 true redirectport 8443 100 debug 0 con...

同時啟動多個Tomcat

一台pc機上同時啟動多個tomcat 環境 兩個tomcat7.0.20,使用乙個jvm,jdk7,win7 64位系統。系統環境變數裡的catalina home已經刪除,根據catalina.bat裡的 來看,應該走的是自己設定的臨時環境變數。兩個startup.bat最前面加上一句set ca...