docker run -p_Docker的使用系列教程-6 Docker 镜像创建1

f755e1e1b12e408c3b80533e821ee58c.png

创建镜像

当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

  • 1、从已经创建的容器中更新镜像,并且提交这个镜像
  • 2、使用 Dockerfile 指令来创建一个新的镜像

19364c1a21c1e9752bcdc6edd81de8cb.png

创建Docker账号

共享和发布镜像时构建镜像中重要的环节,可以将镜像推送到Docker Hub或资金的私有Registry中。首先到https://hub.docker.com/account/signup/创建账号。

0c806173667900f8a3acf9bf27381601.png

d28c27e153f1f16b370fd317710f52db.png

这条命令会完成登录,并将认证信息报错起来供后面使用。个人认证信息将报错到$HOME/ .dockercfg文件中.

用 commit 命令创建镜像

可以想象是往版本控制系统里提交变更:首先创建一个容器,并在容器里做修改,就行修改代码一样,最后在讲修改提交为一个新镜像。

创建一个新容器命令:

sudo docker run -i -t ubuntu /bin/bash

或者之前创建好的myubuntu容器:

sudo docker start myubuntu
sudo docker attach myubuntu

注意:

docker run 后面指定的是一个镜像
而docker start指定的是一个容器
docker run是利用镜像生成容器,并启动容器,而docker start是启动一个之前生成过的容器

因为ubuntu官方镜像中没有软件包的缓存文件,使用apt-get update更新即可,也可以修改源来配置。进入myubuntu之后,然后安装ssh。

ac0afb8ccd57ed3104a56bf345dbfe1e.png

294d5bb726abfa187fa740b5fdf05ad9.png

运行ssh需要目录/var/run/sshd存在,创建启动服务

mkdir -p /var/run/sshd
/usr/sbin/sshd -D &

然后可以看到已经运行,netstat命令可能也没有,安装即可apt-get install net-tools

9c5d2250e4862e477721e124c9e32b77.png

f4e99a9dc6a325c0ca63e1b15460ca5e.png

28728a792b0543b5997970cf44f77399.png

然后复制需要登录的公钥信息(这里为本地主机)。使用ssh-keygen可以生成。

2e38f5c98024024319ba716efd7adaa2.png

复制id_rsa.pub的内容到容器中的/root/.ssh/authorized_keys

2e38f5c98024024319ba716efd7adaa2.png

创建ssh服务执行文件,然后退出容器

vim /run.sh
chmod +x run.sh

f2ac3c57c4f272979c92ffb9b1958a05.png

使用docker commit保存修改的容器,然后运行

docker commit CONTAINER ID ssh:ubuntu
docker run -d -p :22 ssh:ubuntu /run.sh

a80fb4d5d55cae9a74c2b58443d30347.png

1c6689748497206224fdbb6c5e2684dc.png

9d7b0a46f914e3459573a001ed8e9bd2.png

最后可以在宿主机上通过随机生成的32768端口来访问登录容器了:

使用dockerfile创建镜像

创建一个目录sshd_ubuntu,分别创建文件如下:

49617a3764d339f9d9617bc160123f37.png

下一篇文章我们介绍dockerfile创建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值