安装docker
~]# yum install -y wget
~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
~]# yum -y install docker-ce-18.06.1.ce-3.el7
~]# systemctl enable docker && systemctl start docker
~]# docker --version
设置docker仓库地址(master、node)
~]# cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
~]# systemctl daemon-reload
~]# systemctl restart docker
常用操作
docker pull tomcat #拉取镜像
docker run -p 8080:8080 tomcat #运行镜像
docker rmi -f 镜像ID #删除镜像
docker rmi -f $(docker images -qa) #删除所有镜像
docker rm -f $(docker ps -qa) #删除所有容器
查看容器日志
docker logs -f -t --tail=10 容器ID
查看镜像或容器详细信息
docker inspect 镜像ID
在主机执行docker命令
docker exec -t 镜像ID ls -l /tmp
提交镜像
docker commit -a="zzyy" -m="tomcat without docs" 镜像ID atguigu/mytomcat:1.2
docker commit -a="jyr" -m="tomcat with index" tomcat jiang/mytomcat:1.2
Dockerfile编写
FROM centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finished,-----success1"
CMD /bin/bash
说明,VOLUME挂载目录,如果run时没有指定宿主机目录,宿主机将会有一个默认的挂载目录,使用docker inspect查看
在有Dockerfile的目录构建镜像
docker build -t jiang/mycentos .
使用RUN指令
FROM centos
MAINTAINER ZZYY<zzyy167@126.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "success----------------ok"
CMD /bin/bash
构建
docker build -t mycentos:1.3 .
运行
docker run -it mycentos:1.3
推送
$ sudo docker login --username=jiang.yerui@163.com registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/jiangyr/mycentos:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/jiangyr/mycentos:[镜像版本号]
使用CMD指令
FROM centos
RUN yum install -y curl
CMD ["curl","-s","http://ip.cn"]
综合指令
FROM centos
MAINTAINER zzyy<zzyybs@126.com>
COPY c.txt /usr/local/cincontainer.txt #把主机当前目录下的c.txt拷贝到容器的/usr/local/路径下
ADD jdk-8u171-linux-x64.tar.gz /usr/local/ #把JDK解压并添加到容器中
ADD apache-tomcat-9.0.8.tar.gz /usr/local/
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH #设定工作访问时的默认路径
ENV JAVA_HOME /usr/local/jdk1.8.0_171 #配置JAVA和TOMCAT环境变量
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.8
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080 #容器运行时的监听端口
#ENTRYPOINT ["/usr/local/apache-tomcat-9.0.8/bin/startup.sh"] #启动时运行TOMCAT
#CMD ["/usr/local/apache-tomcat-9.0.8/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-9.0.8/bin/startup.sh && tail -F /usr/local/catalina.out
运行mysql
docker run -p 12345:3306 --name mysql
-v /zzyyuse/mysql/conf:/etc/mysql/conf.d
-v /zzyyuse/mysql/logs:/logs
-v /zzyyuse/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456
-d mysql:5.6
备份数据库
docker exec 容器ID sh -c ' exec mysqldump --all-databases -uroot -p123456 > /zzyyuse/all-databases.sql
安装redis
docker run -p 6379:6379
-v /zzyyuse/myredis/data:/data
-v /zzyyues/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf
-d redis:3.2 redis-server /usr/local/etc/redis/redis.conf
--appendonly -yes #启动持久化
提交镜像
docker commit -a zzyy -m"new mycentos" 容器ID mycentos:1.4
将镜像推送到registry
docker login --username=registry.cn-hangzhou.aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/zzyybuy/mycentos:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/zzyybuy/mycentos:[镜像版本号]
拉取镜像
docker pull registry.cn-hagzhou.aliyuncs.com/zzyybuy/mycentos:[镜像版本号]