个人笔记
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

7.5 KiB

docker的安装与使用

安装(centos)

  • 卸载旧版本

    $ sudo yum remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
    
  • 安装依赖

    yum install -y yum-utils \
      device-mapper-persistent-data \
      lvm2
    
  • 设置仓库(非必须)

    官方源地址(比较慢)

    yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    

    阿里云

    yum-config-manager \
        --add-repo \
        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
    

    清华大学源

    yum-config-manager \
        --add-repo \
        https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
    
  • 安装docker

    安装最新版本

    yum install docker-ce docker-ce-cli containerd.io
    

    安装指定版本

    yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
    

    启动docker

    systemctl start docker
    

    设置开机启动

    systemctl enable docker
    

    停止docker

    systemctl stop docker
    
  • 卸载docker

    删除安装包

    yum remove docker-ce
    

    删除镜像、容器、配置文件等内容,默认路径为:/var/lib/docker,自定义路径为:/etc/docker/daemon.json中data-root属性

使用

  • 镜像

    获取最新版本镜像

    docker pull <镜像名称>
    docker pull <镜像名称>:latest
    

    获取指定版本

    docker pull <镜像名称>:<版本号>
    

    删除镜像

    docker rmi <镜像ID>
    
  • 创建与启动容器

    创建新容器并启动

    docker run -itd --<容器名> <镜像名> <容器内执行的命令>
    

    参数说明

    -i: 以交互模式运行容器,通常与 -t 同时使用;
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    -d: 后台运行容器,并返回容器ID;
    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
    -v: 挂载宿主机的一个目录到容器,格式为:主机(宿主)目录:容器目录;
    -e: username="ritchie": 设置环境变量;
    -m: :设置容器使用内存最大值;
    --privileged 容器内root用户是否真正拥有root权限
    --restart :容器退出是重启策略
    	no默认值,表示容器退出时,docker不自动重启容器
    	on-failure 若容器的退出状态非0,则docker自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃
    	always 容器退出时总是重启
    	unless-stopped 容器退出时总是重启,但不考虑Docker守护进程启动时就已经停止的容器
    	如果容器启动时没有设置–restart参数,则通过下面命令进行更新:
    	docker update --restart=always <容器ID>
    

    停止容器

    docker stop <容器ID>
    

    启动容器

    docker start <容器ID>
    
  • 进入退出

    查看所有容器

    docker ps -a
    

    进入容器,attachexec(推荐使用,退出容器终端容器不会停止)

    docker exec -it <容器ID> /bin/bash
    

    进入容器后输入exit 退出容器

  • 删除与导入导出

    删除容器

    docker rm -f <容器ID>
    

    导出容器

    docker export <容器ID> > <文件名>
    

    导入容器

    cat <文件名> | docker import - <镜像名>
    

Docker安装其他软件

  • 安装mysql

    docker pull mysql:5.7.27
    docker run -itd --name mysql-server -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.27
    
  • 安装nginx

    docker pull nginx
    docker run -d --name nginx -p 80:80 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/logs:/var/log/nginx -v /home/nginx/data:/home nginx
    
  • 安装gitea

    docker pull gitea/gitea
    docker run -d --name gitea --privileged --restart=always  -p 122:22 -p 3000:3000 -v /home/gitea/data:/data gitea/gitea
    
  • 安装gitlab

    docker search gitlab
    docker pull twang2218/gitlab-ce-zh
    docker run -d  -p 443:443 -p 280:80 -p 222:22 --name gitlab --privileged --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab twang2218/gitlab-ce-zh
    

    修改gitlab.rb配置文件

    external_url "http://gitlab.xumy.vip:28080"
    nginx['proxy_set_headers'] = { "Host" => "gitlab.xumy.vip:28080" } 
    
  • 安装禅道

    拉取镜像

    docker pull easysoft/zentao:15.7.1
    

    创建网络驱动

    docker network create --subnet=172.172.172.0/24 zentaonet
    

    启动容器

    sudo docker run --name [容器名] -p [主机端口]:80 --network=[网络驱动名] --ip [容器IP] --mac-address [mac地址] -v [主机禅道目录]:/www/zentaopms -v [主机mysql目录]:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=[数据库密码] -d easysoft/zentao:[镜像标签]
    
    其中,容器名:启动的容器名字,可随意指定;
    主机端口:主机端口为web访问端口;
    网络驱动名:刚刚创建的网络驱动名;
    容器IP:在网络驱动范围内选择一个作为该容器的固定ip;
    mac地址:指定固定的mac地址,建议范围为02:42:ac:11:00:00  到  02:42:ac:11:ff:ff;
    主机禅道目录:必须指定,方便禅道代码、附件等数据的持久化,非升级情况需指定空目录;
    主机mysql目录:必须指定,方便禅道数据持久化,非升级情况需指定空目录;
    数据库密码: 容器内置mysql用户名为root,默认密码123456,如果不修改可以不指定该变量,如果想更改密码可以设置 MYSQL_ROOT_PASSWORD变量来更改密码;
    
    docker run --name zentao -p 8080:80 --network=zentaonet --ip 172.172.172.2 --mac-address 02:42:ac:11:00:ff -v /home/zentao/pms:/www/zentaopms -v /home/zentao/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d easysoft/zentao:15.7.1
    
  • 安装redis

    docker pull redis:latest
    docker run -d --name redis -p 6379:6379 redis:latest
    
  • 安装masterlab

    cd /home
    git clone https://gitee.com/firego/masterlab-docker.git
    cd ./masterlab-docker/www
    git clone https://gitee.com/firego/masterlab.git
    cd ./masterlab
    unzip ./vendor.zip
    
    
    docker run -d --name php74 --expose=9000 -p 9000:9000 --link mysql-server:mysql --link redis:redis  \
     -v /home/masterlab-docker/www/:/var/www/html/ \
     -v /home/masterlab-docker/conf/php/php74.ini:/usr/local/etc/php/php.ini \
     -v /home/masterlab-docker/conf/php/php-fpm.d/www74.conf:/usr/local/etc/php-fpm.d/www.conf \
     -v /home/masterlab-docker/log/php-fpm/:/var/log/php-fpm/ \
      gopeak/masterlab:php-fpm-74
    
    
    docker run -d --name nginx-alpine -p 80:80 -p 443:443 --link php74:fpm74 \
     -v /home/masterlab-docker/www/:/var/www/html/ \
     -v /home/masterlab-docker/conf/nginx/conf.d:/etc/nginx/conf.d/ \
     -v /home/masterlab-docker/conf/nginx/nginx.conf:/etc/nginx/nginx.conf \
     -v /home/masterlab-docker/log/nginx/:/var/log/nginx/ \
     -e "TZ=Asia/Shanghai" \
     nginx:alpine
    
     docker run -d -it --rm --name php74-cli \
        -p 9002:9002 \
        -v /home/masterlab-docker/www/masterlab:/usr/workspaces/project \
        -w /usr/workspaces/project \
        gopeak/masterlab:php-cli-74 \
        php  ./bin/swoole_server.php