docker操作


  1. 常用命令

    状态查看 systemctl status docker
    列出镜像列表 docker images
    运行容器 docker run -t -i ubuntu:15.10 /bin/bash
    停止容器 docker stop <container id>
    运行某容器 docker start <container id>
    获取镜像 docker pull ubuntu:13.10
    Docker Hub搜索镜像 docker search httpd
    拖取镜像 docker pull httpd
    删除镜像 docker rmi hello-world
    设置镜像标签 docker tag <container id> daxiang/centos:dev
    进入容器命令行 docker exec -it <container name> bash
    查看容器的DNS是否生效 sudo docker run -it --rm ubuntu cat etc/resolv.conf
    容器设置DNS sudo docker run -it --rm -h host_ubuntu --dns=114.114.114.114 --dns-search=test.com ubuntu 
    ​运行容器例:docker run -dti --name elasticsearch -e "discovery.type=single-node" -p 9200:9200 --net mylocalnet elasticsearch:7.12.1
    容器外执行命令:docker exec --user root 容器ID yum install net-tools -y
    
    docker创建数据库 docker run --name mysql-nkb -p 13306:3306 -v /Users/xxx/data/mysql/conf:/etc/mysql/conf.d -v /Users/xxx/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
    
  2. Dockerfile文件示例

    ## Dockerfile 
    FROM    centos:6.7
    MAINTAINER      Fisher "fisher@sudops.com"
    ​
    RUN     /bin/echo 'root:123456' |chpasswd
    RUN     useradd daxiang1
    Run     /bin/echo 'daxiang1:123456' |chpasswd
    RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
    EXPOSE  22
    EXPOSE  80
    CMD     /usr/sbin/sshd -D

    启动命令

    sudo docker run -t -i daxiang1/cnetos:6.7 /bin/bash
  3. 安装Docker Machine

    安装 base=https://github.com/docker/machine/releases/download/v0.16.0 &&
      curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
      sudo mv /tmp/docker-machine /usr/local/bin/docker-machine &&
      chmod +x /usr/local/bin/docker-machine
      
    查看是否成功 docker-machine version
    列出机器 docker-machine ls
    ​
  4. 安装docker

    由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:
    sudo apt-get remove docker docker-engine docker-ce docker.io
    ​
    更新apt包索引:
    sudo apt-get update
    ​
    安装以下包以使apt可以通过HTTPS使用存储库(repository):
    apt-get install -y apt-transport-https ca-certificates curl software-properties-common
    ​
     添加Docker官方的GPG密钥:
     curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
     
     使用下面的命令来设置stable存储库:
     sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
     
     再更新一下apt包索引:
    sudo apt-get update
    ​
    安装最新版本的Docker CE:
    sudo apt-get install -y docker-ce
    在生产系统上,可能会需要应该安装一个特定版本的Docker CE,而不是总是使用最新版本:
    列出可用的版本:
    apt-cache madison docker-ce
    指定安装:
    sudo apt-get install docker-ce=

  5. 安装docker-compose

    切换超级权限 sudo -i
    安装 curl -L https://github.com/docker/compose/releases/download/1.27.4/run.sh > /usr/local/bin/docker-compose
    加执行权限 chmod +x /usr/local/bin/docker-compose
    卸载:sudo rm /usr/local/bin/docker-compose

  6. docker创建子网内多台服务器

       #查看网络列表
        docker network ls
    
       #创建固定IP的子网
       docker network create --subnet=172.18.0.0/16 netgroup
       
       #创建固定IP容器
       #cluster-master
        docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-master -h cluster-master --net netgroup --ip 172.18.0.2 daocloud.io/library/centos /usr/sbin/init
        #cluster-slaves
        docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave1 -h cluster-slave1 --net netgroup --ip 172.18.0.3 daocloud.io/library/centos /usr/sbin/init
        docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave2 -h cluster-slave2 --net netgroup --ip 172.18.0.4 daocloud.io/library/centos /usr/sbin/init
        docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave3 -h cluster-slave3 --net netgroup --ip 172.18.0.5 daocloud.io/library/centos /usr/sbin/init
    
    #例如 创建mongo
    docker run -dti --name mongo -h mongo -p 27017:27017 --net netgroup --ip 172.18.0.27  daocloud.io/library/mongo --auth
    docker create -p 9876:9876 --name rmqserver -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m"  -e "JAVA_OPTS=-Duser.home=/opt" -v D:\dockerData\rmqserver\logs:/opt/logs -v D:\dockerData\rmqserver\store:/opt/store --net netgroup --ip 172.18.0.98 foxiswho/rocketmq:server-4.7.0
    docker create -p 10911:10911 -p 10909:10909 --name rmqbroker -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" -v D:\dockerData\rmqbroker\conf\broker.conf:/etc/rocketmq/broker.conf -v D:\dockerData\rmqbroker\logs:/opt/logs -v D:\dockerData\rmqbroker\store:/opt/store --net netgroup --ip 172.18.0.109 foxiswho/rocketmq:broker-4.7.0
        
        #换源
        yum -y install wget
        mv /etc/yum.repos.d/CentOS-Linux-BaseOS.repo /etc/yum.repos.d/CentOS-Linux-BaseOS.repo.backup20210125
        wget -O /etc/yum.repos.d/CentOS-Linux-BaseOS.repo http://mirrors.aliyun.com/repo/Centos-8.repo
        yum makecache
        
        #安装openssh
        yum -y install openssh openssh-server openssh-clients
        systemctl start sshd
        
        #cluster-master需要修改配置文件(特殊)
        ####ssh自动接受新的公钥 ####master设置ssh登录自动添加kown_hosts
        vi /etc/ssh/ssh_config
        将原来的StrictHostKeyChecking ask 设置StrictHostKeyChecking为no 保存
        systemctl restart sshd
        
        # (分别对slaves换源和安装openssh)
        
        # 安装passwd软件
        yum install passwd -y
        #执行passwd命令,修改root用户密码
    
        #cluster-master公钥分发
        ssh-keygen -t rsa (一路回车)
        cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
        ssh root@cluster-slave1 'mkdir ~/.ssh'
        scp ~/.ssh/authorized_keys root@cluster-slave1:~/.ssh
        ssh root@cluster-slave2 'mkdir ~/.ssh'
        scp ~/.ssh/authorized_keys root@cluster-slave2:~/.ssh
        ssh root@cluster-slave3 'mkdir ~/.ssh'
        scp ~/.ssh/authorized_keys root@cluster-slave3:~/.ssh
        
        #ansible安装
        yum -y install epel-release
        yum -y install ansible
        vi /etc/ansible/hosts
            [cluster]
            cluster-master
            cluster-slave1
            cluster-slave2
            cluster-slave3
    
            [master]
            cluster-master
    
            [slaves]
            cluster-slave1
            cluster-slave2
            cluster-slave3
            
       #配置docker容器hosts
       #由于/etc/hosts文件在容器启动时被重写,直接修改内容在容器重启后不能保留,为了让容器在重启之后获取集群hosts,使用了一种启动容器后重写hosts的方法。
        #需要在~/.bashrc中追加以下指令
            :>/etc/hosts
            cat >>/etc/hosts<<EOF
            127.0.0.1   localhost
            172.18.0.2  cluster-master
            172.18.0.3  cluster-slave1
            172.18.0.4  cluster-slave2
            172.18.0.5  cluster-slave3
            EOF
        
        source ~/.bashrc
    
        #用ansible分发.bashrc至集群slave下
        ansible cluster -m copy -a "src=~/.bashrc dest=~/"
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值