docker 基本命令,以及常用软件安装(centos7)

使用yum安装docker

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
    通过 uname -r 命令查看你当前的内核版本
    uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
    sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
    sudo yum remove docker  docker-common docker-selinux docker-engine
4、安装docker 
    sudo yum install -y docker
5、设置镜像
    vi /etc/docker/daemon.json
    {
    "registry-mirrors": ["https://aj2rgad5.mirror.aliyuncs.com"]
    }
6、docker 基础命令 
    sudo service docker status  状态 #systemctl status docker 
    sudo service docker start/stop/restart     启动/停止/重启 #systemctl start/stop/restart docker 
7、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
    sudo docker version
8、启动并加入开机启动
    sudo systemctl enable docker
9、docker 镜像操作
    1、列出镜像
        sudo docker images

            REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
            docker.io/hello-world   latest              fce289e99eb9        10 months ago       1.84 kB

        Repository:镜像所在仓库名称
        Tag:镜像版本
        Image ID:镜像 ID
        Created:镜像创建时间
        Size:镜像大小
    2、搜索镜像
        sudo docker search 镜像名称
            docker.io   docker.io/tomcat                        Apache Tomcat is an open source implementa...   2552                 [OK]       
            docker.io   docker.io/tomee                         Apache TomEE is an all-Apache Java EE cert...   69                   [OK]       
            docker.io   docker.io/dordoka/tomcat                Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 ba...   53                   [OK]
            docker.io   docker.io/bitnami/tomcat                Bitnami Tomcat Docker Image                     29                   [OK]
            docker.io   docker.io/kubeguide/tomcat-app          Tomcat image for Chapter 1                      28                   
            docker.io   docker.io/consol/tomcat-7.0             Tomcat 7.0.57, 8080, "admin/admin"              16                   [OK]
            docker.io   docker.io/cloudesire/tomcat             Tomcat server, 6/7/8                            15                   [OK]
            docker.io   docker.io/aallam/tomcat-mysql           Debian, Oracle JDK, Tomcat & MySQL              11                   [OK]
            docker.io   docker.io/arm32v7/tomcat                Apache Tomcat is an open source implementa...   9                    
            docker.io   docker.io/rightctrl/tomcat              CentOS , Oracle Java, tomcat application s...   5                    [OK]
            docker.io   docker.io/maluuba/tomcat7-java8         Tomcat7 with java8.                             4                    
            docker.io   docker.io/unidata/tomcat-docker         Security-hardened Tomcat Docker container.      4                    [OK]
            docker.io   docker.io/amd64/tomcat                  Apache Tomcat is an open source implementa...   2                    
            docker.io   docker.io/arm64v8/tomcat                Apache Tomcat is an open source implementa...   2                    
            docker.io   docker.io/99taxis/tomcat7               Tomcat7                                         1                    [OK]
            docker.io   docker.io/camptocamp/tomcat-logback     Docker image for tomcat with logback integ...   1                    [OK]
            docker.io   docker.io/i386/tomcat                   Apache Tomcat is an open source implementa...   1                    
            docker.io   docker.io/oobsri/tomcat8                Testing CI Jobs with different names.           1                    
            docker.io   docker.io/ppc64le/tomcat                Apache Tomcat is an open source implementa...   1                    
            docker.io   docker.io/appsvc/tomcat                                                                 0                    
            docker.io   docker.io/cfje/tomcat-resource          Tomcat Concourse Resource                       0                    
            docker.io   docker.io/jelastic/tomcat               An image of the Tomcat Java application se...   0                    
            docker.io   docker.io/picoded/tomcat7               tomcat7 with jre8 and MANAGER_USER / MANAG...   0                    [OK]
            docker.io   docker.io/s390x/tomcat                  Apache Tomcat is an open source implementa...   0                    
            docker.io   docker.io/secoresearch/tomcat-varnish   Tomcat and Varnish 5.0                          0                    [OK]
        NAME:仓库名称
        DESCRIPTION:镜像描述
        STARS:用户评价,反应一个镜像的受欢迎程度
        OFFICIAL:是否官方
        AUTOMATED:自动构建,表示该镜像由 Docker Hub 自动构建流程创建的
    3、拉取镜像
        sudo docker pull  repository:tag
    4、删除镜像
        1、指定镜像     
            sudo docker rmi repository:tag
            sudo docker rmi imageID
        2、删除所有镜像
            sudo docker rmi $(docker images -q)
    5、导入导出镜像(镜像迁移)
        导出镜像:
            sudo docker save repository:tag/imageId > /root/xx.tar.gz
            sudo docker save -o mynginx.tar mynginx
            -o 输出到的文件
            执行后,运行 ls 命令即可看到打成的 tar 包
        导入镜像:
            docker load < /root/xx.tar.gz
            docker load -i mynginx.tar
            -i 输入的文件
            执行后再次查看镜像,可以看到镜像已经恢复
10、容器操作
    1、创建并运行容器
        创建容器命令:sudo docker run
        创建容器常用的参数说明:
            -i:表示运行容器
            -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即
                分配一个伪终端。
            --name :为创建的容器命名。
            -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使
                用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后
                共享到容器上。
            -d:在 run 后面加上-d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会
                自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。
            -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p
                做多个端口映射
        以交互方式运行容器:
            sudo docker run -i -t --name 容器名称 repository:tag /bin/bash
            sudo docker run -it --name 容器名称 imageID /bin/bash
        以守护进程方式运行容器:
            sudo docker run -di --name 容器名称 repository:tag
            sudo docker run -di --name 容器名称 imageID
            注意:通过 run 创建并进入容器之后,如果使用 exit 命令退出容器,则容器停止。
                再次进入该容器,先使用 start 启动容器,再使用 exec/attach 命令进入容器。
    2、启动容器
        sudo docker start 容器名称或者容器ID
    3、进入容器
        sudo docker exec -it 容器名称或者容器 ID /bin/bash
        sudo docker attach 容器名称或者容器 ID

        两者之间的区别:
        attach 进入容器之后,如果使用 exit 退出容器,则容器停止。
        exec 进入容器之后,使用 exit 退出容器,容器依然处于运行状态
    4、查看容器
        sudo docker ps :查看正在运行的容器
        sudo docker ps -a:查看历史运行过的容器
        sudo docker ps -l:查看最近运行过的容器
    5、停止容器
        sudo docker stop 容器名称或者容器 ID
    6、删除容器
        删除指定容器:
            sudo docker rm 容器名称或者容器 ID
        删除所有容器:
            sudo docker rm ‘docker ps -a -q’ 
    7、复制文件 
        sudo docker cp 源文件 目标文件
            比如:
            docker cp /root/boot.war my-c说明:
            /root/boot.war 是宿主机器my-centos 是容器的名称
            /usr/local/是容器内的路径
            注意:源文件可以是宿主机器器也可以是宿主机器的文件。
11、常用应用安装
    1、MySQL   
        拉取 sudo docker pull mysql:5.6
        查看镜像 sudo docker images
        创建MySQL容器  sudo docker run -di --name xj-mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=xiaojing mysql:5.6
            -p 代表端口映射,格式为 宿主机映射端口:容器运行端口
            -e 代表添加环境变量 MYSQLROOTPASSWORD 是 root 用户的登陆
        进入mysql:sudo docker exec -it xj-mysql /bin/bash
        登录mysql:sudo docker xj-mysql -u -root -p
        远程登录 进入容器执行:ALTER USER'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xiaojing';
        查看容器IP地址 sudo docker inspect xj-mysql
    2、Tomact
        拉取 sudo docker pull tomcat:8-jre8
        创建Tomcat镜像  sudo docker run -di --name=xj-tomcat -p 18080:8080 tomcat:8-jre8
        搭建 Tomcat 服务并部署 web 应用
            docker run -di --name xj-tomcat -v /root/webapps:/usr/local/tomcat/webapps -d -p 8888:8080 --privileged=true xj-tomcat
            说明:
                --privileged=true 给docker挂载的权限
                -d 后台运行
                --name:该参数的作用是给容器起一个名字,名字要唯一。
                -v:该参数的作用是进行目录映射,具体指的是宿主机器和容器之间的目录映射。
                /opt/webapps:宿主机器的目录
                /opt/tomcat/webapps:容器中的目录
                -p:该参数的作用是进行端口映射,具体指的是宿主机器和容器之间的端口映射。
                8888 端口是宿主机的端口
            1、将 war 包上传到宿主机器的/opt/webapps/目录下。
            2、tomat 会自动热部署,直接访问 web 应用的路径即可
    3、Nginx
        拉取 sudo docker pull nginx 
        创建nginx容器 sudo docker run -di --name=xj-nginx -p 1800:80 nginx /bin/bash
            /usr/sbin/nginx
    4、Redis
        拉取redis sudo docker pull redis
        创建Redis容器 sudo docker run -di --name=xj-redis -p 16379:6379 redis  --requirepass "xiaojing"
    5、RocketMq
        拉取 docker pull rocketmqinc/rocketmq
        运行nameserver:
            docker run -d -p 9876:9876 -v `pwd`/data/namesrv/logs:/root/logs -v `pwd`/data/namesrv/store:/root/store --name rmqnamesrv  rocketmqinc/rocketmq sh mqnamesrv
        运行broker:
            docker run -d -p 10911:10911 -p 10909:10909 -v `pwd`/data/broker/logs:/root/logs -v `pwd`/data/broker/store:/root/store --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
        注意点:
            /opt/rocketmq-4.4.0/conf/broker.conf 为容器内对应配置文件的路径
            为避免端口不可访问的情况,要记得关掉防火墙
            通过docker跑起来的broker,其cluster地址默认为docker的ip,外网无法访问需要更改其ip,具体操作见下文。
        进入容器内,修改配置文件
            docker exec -it broker容器id /bin/sh 
            进入到容器后:     vi /opt/rocketmq-4.4.0/conf/broker.conf    
            在broker.conf文件内新增brokerIP1属性,即:     brokerIP1 = 本机外网ip地址
            修改完成后保存退出
        重启容器
            docker container restart broker容器id  // 注:前文运行broker命令中的 -c /opt/rocketmq-4.4.0/conf/broker.conf, 即表示使用此配置文件
        部署可视化界面
            docker pull styletang/rocketmq-console-ng
            docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=本机外网ip:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8001:8080 -t styletang/rocketmq-console-ng
        .查看主页http://localhost:8001

猜你喜欢

转载自blog.csdn.net/qq_33758347/article/details/106208523