docker操作

作者: wflaugh | 来源:发表于2017-02-02 00:19 被阅读35次

    systemctl start docker.service

    启动docker

    docker search centos

    从官方仓库搜素centos镜像

    docker pull centos

    下载镜像

    ps aux | grep docker

    查看镜像是否启动

    docker images

    docker ps -a

    查看运行了那些容些

    docker start id号

    根据镜像的id号可以启动它

    查看本地游哪些镜像

    docker run -it centos /bin/bash

    用镜像创建容器,并运行个bash

    docker run -d --name hanqiang

    在后台运行一个容器,并把这个容器命名为hanqiang

    docker run -d --name hanqiang nginx

    在后台运行一个nginx镜像,如果本地没有nginx这个镜像的话就自动去docker仓库pull一个

    yum install util-linux

    可以安装nsenter命令,用这个命令可以进入一个docker。 首先,

    docker inspect --format "{{.State.Pid}}" 名称或者id

    可以到的这个容器的pid,拿到这个pid后,就可以用下面的命令进入这个容器,下面的3247就是pid

    nsenter --target 3247 --mount --uts --ipc --pid

    上面的两个命令可以写为一个脚本文件,比如 in.sh 内容如下

    #!/bin/bash

    CNAME=$1

    CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME)

    nsenter --target "$CPID" --mount --uts --ipc --net --pid

    这样就可以使用如下的命令来进入一个docker容器,mynginx是名称

    ./in.sh mynginx

    如果没有权限执行的话,给他加上755权限

    chmod 755 ./in.sh

    常用命令

    ps aux

    ps aux | grep nginx

    docker stop 容器id

    可以停止一个容器,如果这个容器是在运行状态,如果这个容器是在运行状态那么这个容器是没法删除的,需要先停止再删除

    docker rm 容器id

    docker ps -l

    可以看到你最后一个运行的容器

    进入一个官方nginx镜像后,nginx配置文件 是在/etc/nginx/ 下,默认目录是在/usr/share/nginx/html下

    docker run -d -P --name mynginx nginx

    运行一个nginx容器,并且,把nginx的端口映射出来,本地的端口随机

    docker run -d -p 81:80 mynginx2 nginx

    用小p来把容器的80端口映射到本地的81端口

    docker run -d -p 81:80 -p 90:443 --name mynginx2 nginx

    可以映射多个端口

    docker run -d --name mynginx4 -h mynginx4 nginx

    启动一个容器,并且制定容器的hostname为mynginx4

    指定主机的目录映射到对应的docker容器的目录,-v 第一个opt是本地,第2个opt是容器的opt

    docker run -it --name mycentos -h mycentos -v /opt:/opt centos

    手动创建一个镜像,先搭建环境

    docker run -name nginx-man -it centos

    进入容器后执行

    yum install -y wget gcc gcc-c++ make openssl-devel

    查看容器ip

    docker inspect nginx | grep IPAddress

    查看容器内web应用程序日志

    docker logs -f nginx(id或者名称)

    查看容器内进程

    docker top nginx

    关联nginx跟php,注意这里的映射路径nginx跟php必须一样

    docker run -d --name nginx -p 80:80 -h nginx -v /opt:/var/www/html -v /nginx:/etc/nginx/conf.d nginx

    docker run -d --name php-fpm -p 9000:9000 -h php-fpm -v /opt:/var/www/html php:7.1-fpm

    安装php扩展 docker-php-ext-configure, docker-php-ext-install, and docker-php-ext-enable

    docker-php-ext-install pdo pdo_mysql

    apt-get update && apt-get install -y \

    libfreetype6-dev \

    libjpeg62-turbo-dev \

    libmcrypt-dev \

    libpng12-dev \

    && docker-php-ext-install -j$(nproc) iconv mcrypt \

    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \

    && docker-php-ext-install -j$(nproc) gd

    安装完以后启用 ,然后重启php服务生效

    docker-php-ext-enable pdo pdo_mysql

    php7.1下可以通过pecl安装扩展

    pecl install redis-3.1.0 \

    && pecl install xdebug-2.5.0 \

    && docker-php-ext-enable redis xdebug

    在docker1.13中进入容器可以用

    docker exec -it nginx /bin/sh

    安装mysql -e为初始化密码123456

    docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.16

    安装redis 参数redis-server --appendonly yes :在容器执行redis-server启动命令,并打开redis持久化配置

    docker run -p 6379:6379 --name redis -d redis:3.2.6 redis-server --appendonly yes

    可以连接主机的ip运行redis客户端

    docker run -it --name rediscli redis:3.2.6 redis-cli -h 172.17.0.1

    相关文章

      网友评论

        本文标题:docker操作

        本文链接:https://www.haomeiwen.com/subject/xswlittx.html