docker平台中常用的镜像,容器,和数据卷操作指令

docker平台中常用的镜像,容器,和数据卷操作指令

  • 卸载Docker

    • sudo yum remove docker-ce
      docker-ce-client
      docker-client-latest
      docker-common
      docker-latest
      docker-latest-logrotate
      docker-logrotate
      docker-engine
  • 在线安装docker

    • 第一步安装一组工具:

      sudo yum install -y yum-utils
      
    • 第二步:设置yum仓库地址

      sudo yum-config-manager \
          --add-repo \
          https://download.docker.com/linux/centos/docker-ce.repo
      
      
      sudo yum-config-manager \
           --add-repo \
           http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      
      
    • 第三步:更新yum缓存

      sudo yum makecache fast #yum 是包管理
      
    • 第四步:安装新版docker

      sudo yum install -y docker-ce docker-ce-cli containerd.io
      
  • 离线安装Docker

    • 下载docker离线包:

      • https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz
    • 下载离线安装工具

      • https://github.com/Jrohy/docker-install/
    • 在linux环境下,创建/root/setup/docker目录,然后拷贝下载好的资源到此目录(可通过MobaXterm工具直接上传到linux目录)

    • 执行安装操作

      • # 进入/root/setup/docker 文件夹
        cd /root/setup/docker
        
        # 为 install.sh添加执行权限
        chmod +x install.sh
        
        # 安装
        ./install.sh -f docker-20.10.6.tgz
        
        
    • 安装成功后检查安装状态

      • docker info
        
  • Docker 服务的基本操作

    • 启动docker服务:systemctl start docker
      查看docker状态:systemctl status docker
      设置docker开机自启:systemctl enable docker
      禁用docker开机自启:systemctl disable docker
      重新启动docker服务:systemctl restart docker
      查看docker信息:docker info
      停止docker服务:systemctl stop docker
      
  • Docker 镜像操作

    • 下载镜像:docker pull hello-world
      查看所有镜像:docker image
      查看镜像详情:docker inspect hello-world(镜像名或镜像id或镜像id的前三位)
      查看镜像历史:docker history hello-world
      导出镜像文件:docker save hello-world | gzip > hello-world.tar.gz
      删除镜像文件:docker image rm hello-world
      导入镜像操作(要在hello-world.tar.gz文件所在目录下执行): docker load < hello-world.tar.gz
      运行镜像文件:docker run hello-world
      
  • Docker 容器操作实践

    • -it:这是两个参数(-i表示交互式操作,-t表示终端)

    • bash表示进入操作终端,基于交互式进行相关操作

    • 下载CentOS镜像:docker pull centos:7
      创建并启动容器:docker run -it 镜像名/镜像id前几位 bash
      		例如:docker run -it centos:7 bash
      查看docker运行中的容器(要在宿主机执行docker指令):docker ps
      查看docker运行中的所有容器:docker ps -a
      查看容器日志logs信息:docker container logs 802(容器id的前三位)
      停止容器:docker container stop 802
      重启容器:dockerscontainer restart 802
      当容器处于运行状态,要进入容器可以使用docker exec命令(若没有运行时,执行此命令会出问题):docker exec -it 802 bash
      
      退出容器:exit
      删除容器:docker container rm 802(若容器正在运行执行此命令会出错)
      删除正在运行的容器:docker container rm -f 802
      清除所有处于终止状态容器:docker container prune(执行完后,可以通过docker ps -a查看容器是否删除了)
      
  • 数据卷操作:

    • 创建数据卷:docker volume create container-vol
      查看所有数据卷:docker volume ls
      查看指定数据卷的信息:docker volume inspect container-vol
      启动挂载数据卷的容器:docker run -it --mount source=container-vol,target=/root centos:7 bash (简写:docker run -it -v  container-vol:/root centos:7 bash)
      删除数据卷(如果数据卷被容器使用则无法删除):docker volume rm container-vol
      清理无主数据卷:docker volume prunm
      
      
  • Dockerfile及镜像制作实践

    • 把压缩包jdk-8u51-linux-x64.tar.gz拷贝到/root/setup/jdk中

    • 进入jdk-8u51-linux-x64.tar.gz文件所在目录:基于vim创建Dockerfile文件:vim Dockerfile

    • 拷贝:
      FROM centos:7
      ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker
      ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
          PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
      CMD ['bash']
      
    • 制作JDK镜像

    • 创建jdk镜像文件:在Dockerfile所在目录执行docker build指令

      • docker build -t jdk:8 .  #不要丢掉这里的点,-t表示镜像标识(镜像名),是tag单词的缩写.
        
    • 运行JDK镜像文件

      • docker run -it jdk:8 bash
        
    • 基于JDK镜像启动sentinel:

      • 第一步:将sentinel-dashboard-1.8.0.jar拷贝宿主机指定目录,例如/root/servers目录(servers目录不存在可以自己创建)。

      • 启动镜像容器,通过java执行运行web服务

        基于jdk:8镜像启动运行sentinel服务(服务启动后可在宿主机通过localhost:8180进行访问)

        docker run -d -p 8180:8080 --name sentinel \
        -v /root/servers:/usr/sca \
        jdk:8 java -jar /usr/sca/sentinel-dashboard-1.8.0.jar
        
        1. -d 表示后台运行
        2. -p 用于实现端口映射(假设外部要访问这个容器,必须要做端口映射)
        3. –name 表示为启动的容器起一个名字
      • 这里,服务启动后可通过docker ps 指令查看启动的服务,假如看不到服务,可能服务启动失败,可通过如下指令查看具体日志

        docker container logs  689 #这里689为容器id,也可以为你的容器名
        
      • 第三步:打开浏览器,访问sentinel服务.
        在windows中打开浏览器,输入你的ip地址(这个ip为远端宿主机的ip地址),端口号为宿主机的端口号.(8081)

    • 制作Sentinel镜像文件

    • 通过docker images指令查看centos:7是否存在,然后将 jdk-8u51-linux-x64.tar.gz,sentinel-dashboard-1.8.0.jar放在/root/setup/sentinel目录(目录不存在的话自己创建)

      • 第一步:在sentinel所在目录创建Dockerfile文件,并添加如下内容

        • FROM centos:7
          ADD jdk-8u51-linux-x64.tar.gz  /usr/local/
          ADD sentinel-dashboard-1.8.0.jar  /usr/local/
          ENV JAVA_HOME=/usr/local/jdk1.8.0_51 \
              PATH=/usr/local/jdk1.8.0_51/bin:$PATH
          EXPOSE 8080
          ENTRYPOINT ["java","-jar","/usr/local/sentinel-dashboard-1.8.0.jar"]
          
          
      • 第二步:使用 Dockerfile 构建镜像(在Dockerfile所在目录执行docker指令)

        • docker build -t  sentinel:8 .  #不要丢掉这里的点
          
      • 第三步:后台运行sentinel容器

        • docker run -d --name sentinel8181 -p 8181:8080 sentinel:8  #-d 表示后台运行,-p用于指定端口映射,sentinel:8为镜像文件名
          
      • 第四步:查看sentinel容器

        • docker ps
          
      • 第五步:访问sentinel服务

  • 安装Mysql数据库

    • 安装mysql

      • 下载:docker pull mysq:8.0.23
        检查:docker images
        运行mysql镜像:
        	sudo docker run -p 3306:3306 --name mysql \
            -v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
            -v /usr/local/docker/mysql/conf:/etc/mysql \
            -v /usr/local/docker/mysql/logs:/var/log/mysql \
            -v /usr/local/docker/mysql/data:/var/lib/mysql \
            -e MYSQL_ROOT_PASSWORD=root \
            -d mysql:8.0.23
        假如安装过程中失败了,则可通过docker ps -a 查看以前的容器,假如已存在,则通过docker rm 镜像id 删除再重新安装即可。
        
    • 登录mysql服务:

      • 进入容器:sudo docker exec -it mysql bash
        登录mysql,一定要先进入mysql:mysql -uroot -proot
        停止mysql:docker stop mysql
        启动mysql:docker start mysql
        查看mysql启动时的日志:docker container logs mysql
        设置mysql开机自启动:docker update mysql --restart=always
        
  • 安装Redis数据库

    • 安装redis

      • 下载镜像文件:docker pull redis
        准备配置文件:
        	1.创建redis配置文件目录:mkdir -p /usr/local/docker/redis01/conf
        	2.在配置文件录下创建redis.conf配置文件(这个文件一定要创建,否在我们进行目录挂载时默	认生成的是一个目录):touch /usr/local/docker/redis01/conf/redis.conf
        创建redis实例并启动:
            sudo docker run -p 6379:6379 --name redis01 \
            -v /usr/local/docker/redis01/data:/data \
            -v /usr/local/docker/redis01/conf/redis.conf:/etc/redis/redis.conf \
            -d redis redis-server /etc/redis/redis.conf 
        查看正在运行的进程:docker ps
        
    • 访问redis服务器:

      • 第一步:控制台直接连接redis测试:docker exec -it redis01 bash
        第二步:检测redis 版本:redis-server  -v  或者:redis-cli -v
        第三步:登录redis(默认不需要密码):redis-cli
        或者直接将上面的两个步骤合为一个步骤执行也可以,指令如下:ocker exec -it redis01 redis-cli
        
        停止访问:docker stop redis01
        启动访问:docker start redis01
        重启访问:docker restart redis01
        
        
  • 安装Nginx代理

    • 安装Nginx

      • 下载:docker pull nginx
        查看:docker images
        创建数据卷(这个对象会在宿主机直接创建一个目录):docker volume create nginx-vol
        查看数据卷对应的宿主机目录,可以通过如下指令:docker inspect nginx-vol
        启动nginx服务:docker run --name nginx  -p 80:80 -v nginx-vol:/etc/nginx -d nginx
        
        停止访问:docker stop nginx
        启动访问:docker start nginx
        重启访问:docker restart nginx
        
  • 安装Nacos组件

    • 安装nacos组件:

      • 第一步下载:docker pull nacos/nacos-server:1.4.1
        
        第二步: mysql中执行nacos的sql脚本文件
        1)将此文件nacos-mysql.sql(这个文件可从code服务器下载)拷贝到mysql容器的宿主机对应的挂载目录(可通过docker inspect mysql查看你mysql的挂载目录)
        2)在linux环境下启动并登录mysql进入mysql容器(前提是mysql已启动):docker exec -it mysql bash
        登录mysql:mysql -uroot -p
        3)通过source指令运行容器目录下的sql文件:source  /etc/mysql/nacos-mysql.sql  #这里的/etc/mysql为容器中的一个目录(要选择你自己挂载的目录)
        
        
        第三步:创建并启动nacos容器(拷贝下面内容时,账号和密码要用自己宿主机ip,自己数据库的账号密码):
                    docker run  \
                    -e TZ="Asia/Shanghai" \
                    -e MODE=standalone \
                    -e SPRING_DATASOURCE_PLATFORM=mysql \
                    -e MYSQL_DATABASE_NUM=1 \
                    -e MYSQL_SERVICE_HOST=192.168.126.129 \
                    -e MYSQL_SERVICE_PORT=3306 \
                    -e MYSQL_SERVICE_USER=root \
                    -e MYSQL_SERVICE_PASSWORD=root \
                    -e MYSQL_SERVICE_DB_NAME=nacos_config \
                    -p 8848:8848 \
                    --name nacos \
                    --restart=always \
                    -d nacos/nacos-server:1.4.1
        
        第四步:检查nacos服务:docker ps
        假如启动失败,检查启动日志,例如:docker container logs nacos(其中,nacos的启动日志在/home/nacos/logs/start.out文件中。
        
        访问nacos服务
        启动nacos,然后在windows中输入http://ip:port/nacos方式进行访问测试(port为:8848)
        
        
        停止访问:docker stop nacos
        启动访问:docker start nacos
        重启访问:docker restart nacos
        

你可能感兴趣的:(docker,docker,linux,centos)