docker入门命令以及坑点 Tomcat Redis MySQL

docker笔记

1、基本命令

  • 查看本地镜像: docker images
  • 搜索镜像: docker search centos
  • 搜索镜像并过滤是官方的: docker search --filter "is-official=true" centos
  • 搜索镜像并过滤大于多少颗星星的: docker search --filter stars=10 centos
  • 下载centos7镜像: docker pull centos:7
  • 修改本地镜像名字(小写): docker tag centos:7 mycentos:1
  • 本地镜像的删除: docker rmi centos:7
  • 查看正在运行的容器:docker ps
  • 查看所有的容器:docker ps -a
  • 运行容器:docker run -itd centos:7
  • 重启容器:docker restart ID
  • 运行容器并命名:docker run -itd --name=xxx centos:7
  • 停止容器:docker stop ID或命名
  • 删除容器(需先停止容器):docker rm ID命名
  • 强制删除容器:docker rm -f ID命名
  • 查看容器详细信息:docker inspect ID命名
  • 进入容器:docker exec -it ID命名 /bin/bash(解释器)
  • 退出容器:exit
  • 停止正在运行的所有容器:docker stop $(docker ps -a -q)
  • 启动所有容器:docker start $(docker ps -a -q)
  • 复制文件到容器里:docker cp (最好是绝对路径) ID命名:(目标路径) => docker cp /root/123.txt ID命名:/home/
  • 从容器复制到宿主机:docker cp ID命名:(目标路径) (最好是绝对路径) => docker cp ID命名:/home/123.txt /root/

2、commit构建镜像

  • 安装ifconfig的包:yum install -y net-tools

  • commit镜像:docker commit -a "ximen" -m "123" a5b2277d98f6 mycentos:v1

    (docker commit -a "作者" -m "描述相关信息" ID 命名版本号)

3、Dockerfile构建镜像

编辑Dockerfile

  • # this is a dockerfile注释声明这是一个dockerfile文件
  • FROM 基于什么镜像进行构建
  • MAINTAINER 作者 邮箱
  • RUN 执行一条命令
  • WORKDIR 设置工作路径
  • COPY 相对路径 目标路径
# this is a dockerfile
FROM centos:7
MAINTAINER ximen 123@qq.com
RUN echo "正在构建镜像!!!"
WORKDIR /home/ximen
COPY 123.txt /home/ximen
RUN yum install -y net-tools
  • 执行dockerfile命令:docker build -t mycentos:v2 .

    (docker build -t 命名:版本号 .是当前目录下的dockerfile文件)

4、配置Java网站环境

一、配置jdk

  • 解压jdk压缩包:tar -xf jdk-8u161-linux-x64.tar.gz

  • 文件夹移动并改名为jdk:mv jdk1.8.0_161 /usr/local/jdk

  • 编辑环境变量:vi /etc/profile

    export JAVA_HOME=/usr/local/jdk
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    
  • 更新环境变量文件:source /etc/profile

二、启动Tomcat

  • 解压Tomcat:tar -xf apache-tomcat-9.0.41.tar.gz
  • 文件夹移动并改名为tomcat:mv apache-tomcat-9.0.41 /usr/local/tomcat
  • Tomcat:/usr/local/tomcat/bin/catalina.sh run
  • 查看Tomcat启动:ps -ef | grep tomcat

三、查看关闭防火墙

  • 查看防火墙:firewall-cmd --state
  • 关闭防火墙:systemctl stop firewalld.service

四、dockerfile

FROM centos:7
ADD  jdk-8u161-linux-x64.tar.gz /usr/local/jdk /usr/local
RUN mv /usr/local/local/jdk1.8.0_161 /usr/local/jdk
ENV JAVA_HOME=/usr/local/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
ADD apache-tomcat-9.0.41.tar.gz /usr/local
RUN mv apache-tomcat-9.0.41 /usr/local/tomcat
EXPOSE 8080
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]

5、启动环境容器

  • 普通运行:docker run -itd --privileged -p 8989:8080 mycentos:v2 init

6、Nginx

dockerfile

FROM centos:7
RUN rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
RUN yum install -y nginx
EXPOSE 80

7、Redis

  • redis是c语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境
  • 进入/usr/local目录下
  • 安装gcc-c++:yum install gcc-c++
  • 要使用wget下载redis压缩包,就先安装wget:yum install wget
  • 使用wget下载redis压缩包:wget http://download.redis.io/releases/redis-4.0.9.tar.gz
  • 解压redis压缩包:tar -xf redis-4.0.9.tar.gz
  • 进到redis-4.0.9文件夹后执行命令编译:make
  • 再执行安装命令:make PREFIX=/usr/local/redis install
  • 复制redis.conf文件到/usr/local/redis/bin目录:cp ./redis.conf /usr/local/redis/bin/
  • 编辑redis.conf配置文件:vi /usr/local/redis/bin/redis.conf
    1. 搜索protected-mode的位置::/protected-mode
    2. 按a进入编辑模式,把protected-mode的yes改成no
    3. 按esc退出编辑模式,再搜索bind的位置::/bind 127.0.0.1
    4. 按a进入编辑模式,在bind 127.0.0.1前加一个#号注释掉
    5. 按esc退出编辑模式,再输入:wq保存退出
  • 启动redis:/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
  • 运行容器:docker run -itd --privileged -p 6380:6379 mycentos:v4 init
  • 关闭防火墙:systemctl stop firewalld.service
  • 启动redis客户端:/usr/local/redis/bin/redis-cli -p 6380
  • 通过ip链接redis,先查看ip:docker inspect ID
  • IPAddress为ip地址
  • 通过ip连接:/usr/local/redis/bin/redis-cli(宿主机redis地址) -h IP -p 6379(容器redis端口)

8、MySQL

  • 拉取MySQL镜像:docker pull mysql:5.7
  • 运行MySQL容器:docker run -itd --name some-mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
  • 设置编码:docker exec -it ID env LANG=C.UTF-8 /bin/bash
  • 进入容器:docker exec -it ID /bin/bash
  • 进入容器后可以查看字符编码:echo $LANG
  • 登陆MySQL:mysql -uroot -proot
posted @ 2021-02-04 15:07  -西门-  阅读(160)  评论(0编辑  收藏  举报