申威平台docker镜像使用方法

确认docker hub申威镜像仓库

仓库地址:Docker Hub

补充:若想使用docker hub仓库,确认宿主机可以上外网。

确认本机docker环境

说明:中标麒麟服务器操作系统可提供docker18.06.3.ce和docker 17.06.2两个版本,根据所需安装好docker后,这里我们以docker18.06.3 ce版为例,通过如下命令查看docker版本,确认docker安装成功,命令如下:

[root@host157~]# docker -v

Docker version 18.06.3-ce, build d7080c17a580919f5340a15a8e5e013133089680

确认docker环境安装成功后,执行如下命令,启动docker服务:

[root@host157~]# systemctl start docker

设置docker服务为开机启动,执行如下命令:

[root@host157~]#systemctl enable docker

下载base镜像

  1. 方式一:使用docker hub上的base镜像

[root@host157~]docker pull leechm/neokylin-sw:v10-min

     2. 方式二:本地导入

厂商提供镜像包xxx.tar,得到镜像的压缩包xxx.tar

[root@host157~]docker load -i xxx.tar

     3. 查看本机镜像

[root@host157~]# docker images | grep neokylin

REPOSITORY     TAG          IMAGE ID       CREATED       SIZE

leechm/neokylin-sw  v10-min    23a6bfcc5831       7 weeks ago      485MB

注意:通过docker info命令查看Docker Root Dir,可以看到docker镜像存储的目录,默认为/var/lib/docker

制作服务镜像

这里我们以一个nginx服务为例

进入容器里面制作

[root@host157 ~]# docker run -it leechm/neokylin-sw:v10-min bash

[root@60097923e6b3 /]# yum install openssh nginx -y

[root@60097923e6b3 /]# cat nginx_start.sh

#!/bin/bash

/usr/sbin/sshd -D &

/usr/sbin/nginx -g 'daemon off;'

[root@60097923e6b3 /]# chmod +x nginx_start.sh

[root@60097923e6b3 /]# bash nginx_start.sh

Could not load host key: /etc/ssh/ssh_host_rsa_key

Could not load host key: /etc/ssh/ssh_host_ecdsa_key

Could not load host key: /etc/ssh/ssh_host_ed25519_key

sshd: no hostkeys available -- exiting.

nginx: [warn] could not build optimal types_hash, you should increase either types_hash_max_size: 2048 or types_hash_bucket_size: 64; ignoring types_hash_bucket_size

另开终端测试nginx服务,截图步骤分别为:

docker ps得到容器ID,通过容器ID得到容器ip,访问ip即可访问nginx服务

(1)打包nginx镜像

上面测试成功之后,通过容器ID打包nginx容器为nginx镜像。

[root@host157 ~]# docker commit  60097923e6b3  nginx:v1.0

sha256:1936bfd28b4c3a2df3bffd9db73c49ce0f4cda36ebb4e292a901745d2aefce95

[root@host157 ~]# docker images |grep nginx

nginx      v1.0        1936bfd28b4c        8 seconds ago       542MB

注意:不建议通过commit生成镜像,这样就会产生父子镜像,若想删除镜像,得先删除子镜像,然后才能删除父镜像。

(2)运行nginx镜像

[root@host157 ~]# docker run -d -p 8080:80 nginx:v1.0  /nginx_start.sh

9d0f1f9ad6f0a6d609651b086e312eac7ce25cc3d1fa88fcd38bbf2335101254

[root@host157 ~]# docker ps

CONTAINER ID     IMAGE  COMMAND   CREATED    STATUS    PORTS   NAMES

9d0f1f9ad6f0   nginx:v1.0      "/nginx_start.sh"   3 seconds ago   Up 2 seconds        0.0.0.0:8080->80/tcp   lucid_euler

通过浏览器访问nginx服务,测试8080端口

通过dockerfile

Dockerfile详细指令教程参考:Docker Dockerfile | 菜鸟教程

[root@host157 dockerfile]# ls

Dockerfile  nginx_start.sh

[root@host157 dockerfile]# cat Dockerfile

FROM leechm/neokylin-sw:v10-min

RUN yum install openssh nginx -y

COPY nginx_start.sh /

CMD ["/nginx_start.sh"]

[root@host157 dockerfile]#

[root@host157 dockerfile]# docker build -t nginx:v2.0 .

[root@host157 dockerfile]# docker run -d -p 8081:80 nginx:v2.0

33c2cf57ce543afa77d01eb038829429dfa384467119695129597b2903823a5a

[root@host157 dockerfile]# docker ps

CONTAINER ID     IMAGE   COMMAND   CREATED    STATUS    PORTS   NAMES

33c2cf57ce54        nginx:v2.0      "/nginx_start.sh"   5 seconds ago    Up 3 seconds        0.0.0.0:8081->80/tcp   dreamy_northcutt

9d0f1f9ad6f0      nginx:v1.0    "/nginx_start.sh"   11 minutes ago Up 11 minutes       0.0.0.0:8080->80/tcp   lucid_euler

测试8081端口

容器里面访问本地仓库

本地仓库如何搭建,简单说明一下

所有的包下载到本地的一个目录下,然后使用createrepo_c命令即可

这里同样以nginx为例,具体看如下图

通过启动容器挂载宿主机仓库目录到容器里面实现仓库数据共享

[root@host157 ~]# docker run -it -v /root/repo:/root/repo  leechm/neokylin-sw:v10-min bash

修改repo地址

[root@1143eb63b30f /]# cat /etc/yum.repos.d/neokylin.repo

[SWKY10-local]

name=SWKY10-3-local

baseurl=file:///root/repo

enabled=1

priority=1

gpgcheck=0

skip_if_unavailable = 1

keepcache = 0

[root@1143eb63b30f /]#yum install nginx

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值