6.docker手动制作镜像(基于C6)
更新:HHH   时间:2023-1-7


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       

3.10启动sshd服务

[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

3.11设置容器登录密码

echo '123456' | passwd  --stdin root

3.12连接测试

返回云计算教程...