• Docker 安装以及运用


    Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
    Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。


    a、使用 yum 安装(CentOS 7 root下)

    1、查看centos内核版本
    # uname -r

    2、卸载旧版本
    # yum remove docker
    docker-client
    docker-client-latest
    docker-common
    docker-latest
    docker-latest-logrotate
    docker-logrotate
    docker-selinux
    docker-engine-selinux
    docker-engine

    3、安装 Docker
    # yum -y install docker-io

    4、启动 Docker 后台服务
    # service docker start

    5、测试运行 hello-world
    # docker run hello-world

    6、启动docker
    systemctl start docker


    b、使用 yum 安装(CentOS 6.5下)
    # rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
    # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
    # yum -y install yum -priorities
    # yum -y install docker-io
    # service docker start


    c、应用Docker

    1,获取Centos镜像
    # docker pull centos:latest

    2,查看镜像运行情况
    # docker images centos

    3,在容器下运行(进入centos系统) shell bash
    # docker run -i -t centos /bin/bash

    4,停止容器
    # docker stop <CONTAINER ID>

    5,查看容器日志
    # docker logs -f <CONTAINER ID>

    6,删除所有容器
    # docker rm $(docker ps -a -q)

    7,删除镜像
    # docker rmi <image id/name>

    8,提交容器更改到镜像仓库中
    # docker run -i -t centos /bin/bash
    # useradd myuser
    # exit
    # docker ps -a |more
    # docker commit <CONTAINER ID> myuser/centos

    9,创建并运行容器中的 hello.sh
    # docker run -i -t myuser/centos /bin/bash
    # touch /home/myuser/hello.sh
    # echo "echo "Hello,World!"" > /home/myuser/hello.sh
    # chmod +x /home/myuser/hello.sh
    # exit
    # docker commit <CONTAINER ID> myuser/centos
    # docker run -i -t myuser/centos /bin/sh /home/myuser/hello.sh

    10,在容器中运行Nginx

    在容器中安装好Nginx,并提交到镜像中
    # docker run -t -i -p 80:80 nginx/centos /bin/bash
    启动Nginx
    # /data/apps/nginx/sbin/nginx
    (还不清楚如何在后台运行!!!)

    在浏览器访问宿主机80端口。

    11,映射容器端口
    # docker run -d -p 192.168.9.11:2201:22 nginx/centos /usr/sbin/sshd -D

    用ssh root@192.168.9.11 -p 2201 连接容器,提示:

    Connection to 192.168.1.205 closed.(此问题还未解决!!!)

    docker images //查看当前服务器所有镜像
    docker ps //查看当前服务器正在运行的容器
    docker ps -a //查看当前服务器所有容器
    docker exec -it 容器ID /bin/bash //进入指定容器
    exit //退出容器
    docker rm 容器ID //删除指定容器
    docker rmi 镜像ID //删除指定镜像,正在使用的容器的镜像不能删除
    docker save 镜像ID > 镜像名.tar //打包指定镜像为 镜像名.tar
    docker load < 镜像名.tar //加载指定镜像压缩包
    docker tag 源镜像ID 镜像名[:tag] //为指定镜像打标签

    ======================================================

    ------------------Docker 安装tomcat----------------------

    # docker pull tomcat
    # docker run --name tomcat -p 8080:8080 -d tomcat (docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat )
    输入http://localhost:8080

    命令说明:

    -p 8080:8080:将容器的8080端口映射到主机的8080端口

    -v $PWD/test:/usr/local/tomcat/webapps/test:将主机中当前目录下的test挂载到容器的/test

    --------------------------------Docker 安装 Nginx--------------------------
    docker search nginx 查找镜像路径

    docker pull nginx 默认路径拉取镜像


    docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx 运行

    命令说明:

    -p 80:80:将容器的80端口映射到主机的80端口

    --name mynginx:将容器命名为mynginx

    -v $PWD/www:/www:将主机中当前目录下的www挂载到容器的/www

    -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf

    -v $PWD/logs:/wwwlogs:将主机中当前目录下的logs挂载到容器的/wwwlogs


    ---------------------------------Docker 安装 MySQL---------------------------------
    docker pull mysql:5.6

    docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6


    命令说明:

    -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。

    -v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。

    -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。

    -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。

    -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。


    --------------------------------------------------------
    docker run :创建一个新的容器并运行一个命令

    语法
    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    OPTIONS说明:

    -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

    -d: 后台运行容器,并返回容器ID;

    -i: 以交互模式运行容器,通常与 -t 同时使用;

    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    --name="nginx-lb": 为容器指定一个名称;

    --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

    --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

    -h "mars": 指定容器的hostname;

    -e username="ritchie": 设置环境变量;

    --env-file=[]: 从指定文件读入环境变量;

    --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

    -m :设置容器使用内存最大值;

    --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

    --link=[]: 添加链接到另一个容器;

    --expose=[]: 开放一个端口或一组端口;

    实例
    使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

    docker run --name mynginx -d nginx:latest
    使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。

    docker run -P -d nginx:latest
    使用镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的80端口,主机的目录/data映射到容器的/data。

    docker run -p 80:80 -v /data:/data -d nginx:latest
    使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

    $ docker run -it nginx:latest /bin/bash

    rabbitmq安装部署
    docker run -d --name myrabbitmq -p 5672:5672 -p 15672:15672 docker.io/rabbitmq:3-management

    redis安装部署
    docker run --name myredis -p 6379:6379 -d docker.io/redis


    学习视频
    https://www.bilibili.com/video/av36042649/?p=34

  • 相关阅读:
    goland 安装包激活码
    go目录文件
    php 单表数据转化为json格式
    thinkphp分页查询,后台处理怎么做
    用js 获取url 参数 页面跳转 ? 后的参数
    约瑟夫问题
    openstack配置
    Python数据结构
    Python常用排序算法
    scrapy使用
  • 原文地址:https://www.cnblogs.com/wangfg/p/10592068.html
Copyright © 2020-2023  润新知