最近一直在捣鼓docker,这个东东着实让我兴奋了几天,下面分享下安装过程。
因为docker要求的linux内核版本较高,所以我在vbox中安装了个centos7。至于centos7如何安装,就不啰嗦了,这里用的是最小化的安装。
首先配置网卡,保证虚拟机能正常的访问网络,因为安装docker需要联网。我一般习惯在安装虚拟机时设置两个网卡,一个使用nat方式连接,负责上网;一个使用host only方式连接,用来主机到虚拟机的连接。然后启用两个网卡,最简单的方式就是输入dhclient方式,系统会自动分配ip给网卡。
首先,安装docker的命令:
# yum -y install docker
安装完成后,可以使用下面的命令查看可以使用的镜像:
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
此时没有任何的镜像可用,无法启动容器,所以我们需要下载镜像。这一步我们可以选择下载各种不同系统的镜像,这里依然选择最熟悉的centos,这一步docker会联网下载镜像文件:
# docker pull centos
等到镜像下载完成后,再使用docker images命令会看到有几个centos的镜像:
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
首先来搭建一个可以通过ssh访问的docker容器。
1. 启动一个docker容器:
# docker run -i -t centos /bin/bash
这样就会新建一个docker容器,并且进入容器的bash中,
2. 安装sshd:
# yum -y install openssh-server
3. 启动sshd,这里要用绝对路径,查看某个命令的路径可以用whereis或which:
# /usr/sbin/sshd -D
centos下启动sshd的时候会出现下列错误:
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
依次执行下列命令即可:
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key #直接回车即可
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key #直接回车即可
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""
按后再启动sshd服务应该是没问题了。
4. 完成后,编辑sshd_config配置文件,找到UsePAM yes这一段配置,将其改成UsePAM no
#UsePAM no
UsePAM yes
改成
UsePAM no
#UsePAM yes
如果不修改这段的话,使用ssh登陆到容器里面来的时候会马上退出。
5. 安装passwd,并修改root的密码:
# yum -y install passwd
# passw root
Changing password for user root.
New password:
6. 改完密码执行exit命令退出,这时会回到宿主机器的shell,执行下列命令将容器提交到镜像:
# docker commit containerid imagename
这里的containerid是容器的id,imagename就是提交时候镜像的名称,第一次提交的时候最好使用一个新的名称,不要覆盖了原有的干净的centos镜像。
容器id可以通过docker ps -l命令查看到,启动容器后默认的主机名其实就是容器id。
7. 通过docker run启动一个新的容器,参数-d表示后台运行,-p表示docker到主机的端口的映射。
# docker run -d -p 10022:22 imagename /usr/sbin/sshd -D
如果启动没问题的话,就可以登录到容器了:
# ssh root@localhost -p 10022
登录后我们就可以在里面安装各种软件搭建各种环境了。