1、拉取镜像
docker pull centos:centos7
2、查看镜像
docker images
3、运行容器
这里我们运行三个Centos容器
docker run --privileged -p 60001:22 --cap-add SYS_ADMIN --name mycentos1 -e container=docker -itd --restart=always centos:centos7 /usr/sbin/init
docker run --privileged -p 60002:22 --cap-add SYS_ADMIN --name mycentos2 -e container=docker -itd --restart=always centos:centos7 /usr/sbin/init
docker run --privileged -p 60003:22 --cap-add SYS_ADMIN --name mycentos3 -e container=docker -itd --restart=always centos:centos7 /usr/sbin/init
参数说明:
- –privileged(必需) 指定容器是否是特权容器,这里开启特权模式
- –cap-add(必需) SYS_ADMIN 添加系统的权限
- -e container=docker(必需) 设置容器的类型
- -it 启动互动模式(必需)(不加容器会不停启动)
- /usr/sbin/init(必需) 初始化容器里的CENTOS(没有初始化和特权等等的开关,就不能使用systemctl)
- –restart=always(非必需) Docker重启,容器是否重启
4、安装命令和配置
首先要进入容器
docker exec -it container_id /bin/bash
安装一些命令和配置
yum install initscripts -y
yum install wget vim -y
yum search ifconfig
yum install net-tools.x86_64 -y
yum install -y NetworkManager-tui
yum install passwd openssl openssh-server -y
yum install openssh-clients -y
yum -y install gcc
至此,Centos环境已经搭建完成!
5、远程连接
接下来,我想用远程连接工具连接Docker容器中的Centos。
开启ssh服务
systemctl start sshd.service
为root用户设置密码
passwd root
查看ip
ifconfig
现在我们就可以用远程连接工具来连接
连接成功!
6、打包镜像
在搭建好Centos容器,安装完各种必要的软件之后,再搭建另外两个容器,是不是同样的步骤再跑两遍?或者以后在其他机器上再搭建同样的集群,是不是又要重复相同的操作?这么做显然不够优雅!!!
既然我们运行的Centos容器是基于镜像的,那么我们可不可以把搭建好的容器也打包成镜像呢?
打包镜像
docker commit -a "jiangchh" -m "Centos环境" mycentos1 mycentos:latest
查看镜像
7、上传镜像
我们可以把打包好的镜像上传到镜像仓库
登录镜像仓库
sudo docker login --username=username registry.cn-shenzhen.aliyuncs.com
给镜像打标签
sudo docker tag 2e5a23735330 registry.cn-shenzhen.aliyuncs.com/jiangchh_images/centos:latest
查看镜像
将镜像推送到镜像仓库
sudo docker push registry.cn-shenzhen.aliyuncs.com/jiangchh_images/centos:latest
查看镜像仓库
接下来,我们就可以拉取镜像,快速部署容器!
8、快速部署容器
拉取镜像
sudo docker pull registry.cn-shenzhen.aliyuncs.com/jiangchh_images/centos:latest
运行容器
docker run --privileged -p 60004:22 --cap-add SYS_ADMIN --name mycentos4 -e container=docker -itd --restart=always registry.cn-shenzhen.aliyuncs.com/jiangchh_images/centos:latest /usr/sbin/init
查看容器
docker ps
进入容器
docker exec -it container_id /bin/bash
此时,我们不用安装ifconfig命令就可以用
远程连接
远程连接成功!