1.制作一個基于centOS6版的Nginx鏡像(單服務)
11.啟動并進入容器
[root@docker03 ]# docker run -it -p 80:80 centos:6.9 /bin/bash
[root@9dac33fe6bda /]#
1.2更改容器系統的yum源和epel源
[root@9dac33fe6bda /]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2523 100 2523 0 0 17512 0 --:--:-- --:--:-- --:--:-- 17643
[root@9dac33fe6bda /]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 664 100 664 0 0 3179 0 --:--:-- --:--:-- --:--:-- 3177
1.3安裝Nginx服務
[root@9dac33fe6bda /]# yum install -y nginx
1.4啟動nginx
[root@9dac33fe6bda /]# nginx
1.5測試
1.6送出鏡像
[root@docker03 ~]# docker commit 9dac33fe6bda
sha256:b3b5ec6779bd43731aa3e1639811d1583a4404cb2296dab75a4f8c7e41d62b6a
[root@docker03 ~]# docker commit 9dac33fe6bda docker_centos6.9_nginx:v1
sha256:f954a629873f40f5b70676cc2618c4766b9ef161e4e46c38b89327b613662f4f
[root@docker03 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker_centos6.9_nginx v1 f954a629873f 7 seconds ago 446MB
1.7測試鏡像功能
[root@docker03 /opt]# docker run -d -p 80:80 -v /opt:/usr/share/nginx/html docker_centos6.9_nginx:v1 nginx -g 'daemon off; '
085ea855e734a0aa4aacb739b6de788f03e9d288bf16719fd1ad2e94de5896d0
2.制作一個基于centOS版的可道雲鏡像(多服務)
2.1啟動并進入容器
[root@docker03 /opt]# docker run -it -p 80:80 centos:6.9 /bin/bash
[root@274ca61dd89f /]#
2.2更改容器系統的yum源和epel源
[root@274ca61dd89f /]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
110 664 110 664 0 0 4205 0 --:--:-- --:--:-- --:--:-- 7545
[root@274ca61dd89f /]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2523 100 2523 0 0 25788 0 --:--:-- --:--:-- --:--:-- 61536
2.3安裝nginx
[root@274ca61dd89f /]# yum install nginx -y
2.4安裝PHP服務
[root@274ca61dd89f /]# yum install php-fpm php-gd php-mbstring -y
2.5更改PHP配置檔案使用者和使用者組
[root@274ca61dd89f /]# vi /etc/php-fpm.d/www.conf
2.6啟動PHP服務
[root@274ca61dd89f /]# service php-fpm start
Starting php-fpm: [ OK ]
2.7更改nginx的配置檔案
添加到vi /etc/nginx/conf.d/default.conf
#
# The default server
#
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /html;
index index.php index.html index.htm;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
location ~ \.php$ {
root /html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /html$fastcgi_script_name;
include fastcgi_params;
}
2.8建立html目錄并下載下傳可道雲
[root@274ca61dd89f /]# mkdir /html
[root@274ca61dd89f html]# cd /html
[root@274ca61dd89f html]# curl -o kodexplorer4.40 http://static.kodcloud.com/update/download/kodexplorer4.40.zip
[root@274ca61dd89f html]# ls
kodexplorer4.40
2.9解壓可道雲
[root@274ca61dd89f /]# install unzip -y
[root@274ca61dd89f /]# unzip kodexplorer4.40
2.10更改目錄的屬主屬組
[root@274ca61dd89f html]# chown -R nginx.nginx .
[root@274ca61dd89f html]# ll /html
total 13676
drwxr-xr-x 10 nginx nginx 115 Mar 21 2019 app
-rw-r--r-- 1 nginx nginx 91248 Mar 21 2019 ChangeLog.md
drwxr-xr-x 3 nginx nginx 74 Mar 21 2019 config
drwxr-xr-x 7 nginx nginx 72 Mar 21 2019 data
-rw-r--r-- 1 nginx nginx 118 Mar 21 2019 index.php
-rw-r--r-- 1 nginx nginx 13894810 Dec 13 02:38 kodexplorer4.40
drwxr-xr-x 15 nginx nginx 218 Mar 21 2019 plugins
-rw-r--r-- 1 nginx nginx 7718 Mar 21 2019 README.MD
drwxr-xr-x 6 nginx nginx 57 Mar 21 2019 static
2.11測試
2.12編寫啟動腳本(夯住起動指令在最後一個啟動)
vi init.sh
#!/bin/bash
service php-fpm start
nginx -g 'daemon off;'
~
2.13生成鏡像
[root@docker03 /etc/nginx]# docker commit 274ca61dd89f docker_kod:v1
sha256:da72ea94c8cbf9f2c21b7655b4146b0308053c3988fc2b6d165a1f6dd4cbc8de
2.14測試鏡像
[root@docker03 ~]# docker run -d -p 81:80 docker_kod:v1 /bin/bash /init.sh
cd5d18b69f1438426da1283160c73cbe45c2d8f73e74f5adeec0211bf14b52b7
3.docker手動制作鏡像(基于C7)(Nginx+ssh)
3.1.建立并進入容器
[root@docker03 ~]# docker run -it -p 83:80 centos:7
[root@c919e69954a2 /]#
3.2.更改容器系統的yum源和epel源
[root@c919e69954a2 /]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
100 2523 100 2523 0 0 17831 0 --:--:-- --:--:-- --:--:-- 17893
[root@c919e69954a2 /]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 664 100 664 0 0 5044 0 --:--:-- --:--:-- --:--:-- 5068
3.3.安裝nginx
[root@c919e69954a2 /]# yum install nginx -y
3.4.啟動服務
注:C7在容器中無法使用systemctl啟動服務,因為bus程序沒有啟動,C7啟動快是因為多個程序同時啟動。
root@docker03 ~]# ps -ef |grep bus
dbus 6819 1 0 Dec12 ? 00:00:03 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root 43281 40267 0 11:09 pts/1 00:00:00 grep --color=auto bus
[root@c919e69954a2 /]# systemctl start nginx
Failed to get D-Bus connection: Operation not permitted
用手動啟動服務
[root@c919e69954a2 /]# systemctl start nginx
Failed to get D-Bus connection: Operation not permitted
[root@c919e69954a2 /]# systemctl cat nginx
# /usr/lib/systemd/system/nginx.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
[Install]
WantedBy=multi-user.target
/usr/sbin/nginx
3.5.安裝ssh服務
[root@c919e69954a2 /]# yum install openssh-server -y
3.6啟動sshd-keygen服務(因為沒有密鑰對,報錯)
[root@c919e69954a2 /]# /usr/sbin/sshd-keygen
/usr/sbin/sshd-keygen: line 10: /etc/rc.d/init.d/functions: No such file or directory
Generating SSH2 RSA host key: /usr/sbin/sshd-keygen: line 63: success: command not found
Generating SSH2 ECDSA host key: /usr/sbin/sshd-keygen: line 105: success: command not found
Generating SSH2 ED25519 host key: /usr/sbin/sshd-keygen: line 126: success: command not found
3.7在主控端查詢檔案對應的軟體包
[root@docker01 ~]# rpm -qf /etc/rc.d/init.d/functions
initscripts-9.49.46-1.el7.x86_64
3.8安裝軟體包
[root@c919e69954a2 /]# yum install initscripts -y
3.9在啟動sshd-keygen服務,檢視秘鑰對
[root@c1e50af6f42c /]# /usr/sbin/sshd-keygen
Generating SSH2 RSA host key: [ OK ]
Generating SSH2 ECDSA host key: [ OK ]
Generating SSH2 ED25519 host key: [ OK ]
[root@c919e69954a2 /]# ls /etc/ssh/
moduli ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub
ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key sshd_config
[root@c919e69954a2 /]# systemctl cat sshd
# /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service
[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
[root@c919e69954a2 /]# /usr/sbin/sshd -D
echo '123456' | passwd --stdin root