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