容器

Docker部署Centos7

2020-02-21  本文已影响0人  夜行神喵

经常需要我们自己准备好一个基础服务器来安装各种程序 , 我不建议使用Alpine ,虽然很小, 但实际用时还是要装很多包,甚至在部署会又遇到各种缺包不支持等 ;
我这边是用了常见且稳定的Centos7 ,官方镜像也才200来M.

1. 下载镜像

https://hub.docker.com/_/centos

docker pull centos:7.6.1810

myzmac:Oracle myz$ docker images centos:7.6.1810
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              7.6.1810            f1cb7c7d58b7        11 months ago       202MB

2. 自定义网络(可选)

一般自用可用默认的网桥或HOST等方式(但不能对容器固定IP,只能端口映射)
但在生产环境是要自定义网络

docker network ls
#docker network rm mynet
docker network create --subnet=2.2.2.0/24 mynet
docker network  inspect mynet

2. 创建容器

docker run -e TZ="Asia/Shanghai" -itd -h cent76_21 --name cent7621 -m 512m centos:7.6.1810 init

--使用自定义网络,及指定IP
docker run -e TZ="Asia/Shanghai"  -itd -h cent76_21 --name cent7621 -m 512m  --network=mynet2 --ip 2.2.2.21 centos:7.6.1810  init

注意:
--privileged 为容器内获得root管理权限,比如使用systemctl , 不然报错:
[root@cent76]# systemctl
Failed to get D-Bus connection: Operation not permitted
但如无必要尽量不要使用--privileged 否则有可能会导致容器中 agetty进程的CPU使用 100%.
(可以用docker stats 观察, Kill agetty进程就暂时正常;这bug,不知道什么时候能修复)

参数说明:
-e TZ="Asia/Shanghai" 时区一定要指定, 不然差8小时
-h cent76_21 主机名
--privileged 容器内为获得root权限
-itd 后台运行
--name cent7621 容器名
-m 指定内器最大使用内存
--network 使用网络
--ip 指定静态ip
init 结尾要用init

3. 安装常用工具(视需要)及SSH

docker exec -it cent762 sh
yum install -y openssh openssh-server openssh-clients vim lrzsz wget gcc-c++ pcre pcre-devel zlib zlib-devel ruby  openssl openssl-devel patch bash-completion zlib.i686 libstdc++.i686 lsof unzip zip tmux iproute  net-tools rsyslog ntpdate crontabs sudo telnet

--启动crontab
systemctl start crond

--启动syslog服务
rsyslogd
logger "Hello World" 

查看/var/log/messages是否有记录Hello World ,如果没有可按如下设置
解决办法如下:
修改syslog配置—— # vi /etc/rsyslog.conf

  1. 注释掉 $ModLoad imjournal
  2. 设置 $OmitLocalLogging 为 off
  3. 注释掉 $IMJournalStateFile imjournal.state
echo root:welcome1 | chpasswd
#UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no
#sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config

#/usr/sbin/sshd-keygen -A
--重启ssh
systemctl restart sshd
--连接测试
ssh root@2.2.2.21 date
上一篇 下一篇

猜你喜欢

热点阅读