最近做的一个项目,涉及到MongoDB集群、Spark集群,Hadoop集群,Python2.7,Python3.5,各种推荐算法,Java Resin环境,LNMP环境、vsftpd等,因为需要部署内网环境、测试环境、生产环境,每次部署就是一次折磨,这个时候Docker的好处就体现出来了,把Python环境、LNMP环境、vsftpd等,全部打入docker中,特别爽歪歪。经过2个月的部署,联调也整理了一些docker的实用命令。
系统环境以CentOS 7为例
1. 下载安装docker并启动服务
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
下载 docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm
yum install docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm service docker start
2. docker的常用命令
解决报错WARNING: IPv4 forwarding is disabled. Networking will not work.
第一步:在宿主机上执行echo “net.ipv4.ip_forward=1” >>/usr/lib/sysctl.d/00-system.conf
第二步:重启network和docker服务
[root@localhost /]# systemctl restart network && systemctl restart docker
Failed to get D-Bus connection: Operation not permitted
docker run -d –name centos7 –privileged=true –net=host -v /home/code:/home/code centos:mysql_python3_jdk1.8 /usr/sbin/init
长时间运行docker容器,并装载宿主机路径
docker run -dit -v /home/code:/home/code python35:latest /bin/bash
进入已经启动的docker容器
docker exec -it 容器id /bin/bash
启动某个容器镜像
docker run -it python35:latest /bin/bash
Docker导出:
docker export -o /home/python35.tar 容器id
docker save *.tar
Docker导入:
docker import /home/python35.tar
docker load < *.tar Docker 打标签
docker tag 镜像id REPOSITORY:TAG
Docker 指定网络为宿主机网络
docker run -dit --net=host python35:latest /bin/bash
Docker 指定容器和宿主机时间同步
docker run -dit -v /etc/localtime:/etc/localtime python35:latest /bin/bash
安装JDK1.8
yum install java-1.8.0-openjdk* -y
安装MySQL5.6
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm yum -y install mysql-community-server systemctl enable mysqld systemctl start mysqld 初始化: mysql_secure_installation GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '远程登录密码' WITH GRANT OPTION; FLUSH PRIVILEGES;
Python3编码
echo ‘export LANG=zh_CN.UTF-8’ >> ~/.bashrc