创建镜像
当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
- 1、从已经创建的容器中更新镜像,并且提交这个镜像
- 2、使用 Dockerfile 指令来创建一个新的镜像
创建Docker账号
共享和发布镜像时构建镜像中重要的环节,可以将镜像推送到Docker Hub或资金的私有Registry中。首先到https://hub.docker.com/account/signup/创建账号。
这条命令会完成登录,并将认证信息报错起来供后面使用。个人认证信息将报错到$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。
运行ssh需要目录/var/run/sshd存在,创建启动服务
mkdir -p /var/run/sshd
/usr/sbin/sshd -D &
然后可以看到已经运行,netstat命令可能也没有,安装即可apt-get install net-tools
然后复制需要登录的公钥信息(这里为本地主机)。使用ssh-keygen可以生成。
复制id_rsa.pub的内容到容器中的/root/.ssh/authorized_keys
创建ssh服务执行文件,然后退出容器
vim /run.sh
chmod +x run.sh
使用docker commit保存修改的容器,然后运行
docker commit CONTAINER ID ssh:ubuntu
docker run -d -p :22 ssh:ubuntu /run.sh
最后可以在宿主机上通过随机生成的32768端口来访问登录容器了:
使用dockerfile创建镜像
创建一个目录sshd_ubuntu,分别创建文件如下:
下一篇文章我们介绍dockerfile创建