美文网首页工具算法
mac 下docker使用

mac 下docker使用

作者: 低调_0c1d | 来源:发表于2018-09-29 23:40 被阅读89次

    1.参考链接

    2.Docker 架构

    • 采用了客户端-服务器(C/S)架构模式,通过远程API来管理和创建Docker容器
    • Docker容器通过Docker镜像来创建
    • 容器和镜像的关系类似于面向对象变成中的对象与类
    • Docker镜像是用于创建Docker容器的模板
    • Docker容器是独立运行的一个或一组应用
    • Docker客户端通过命令行或者其他工具使用DockerAPI与Docker的守护进程通信
    • Docker主机是一个物理或者虚拟的机器用于执行Docker守护进程和容器
    • Docker仓库适用于保存镜像
    • Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。
    • Docker Machine 是一个简化Docker安装的命令行工具,通过一个简单的命令行即可以在相应的平台安装Docker,比如Virtual Box、Digital Ocean、Mirosoft Azure。

    3.安装

    3.1Mac OS

    3.1.1下载docker地址

    https://dn-dao-github-mirror.qbox.me/docker/install/mac/Docker.dmg

    3.2 linux

    4.使用docker创建容器

    4.1 创建nginx容器

    4.1.1安装nginx镜像,并且启动

    docker安装nginx有两种方式:docker pull nginx(推荐) 和通过DockerFile(不推荐)

    # 查找nginx镜像
    docker search nginx
    # 拉取nginx官方的镜像
    docker pull nginx
    # 启动docker中的nginx
    docker run --name webserver -d -p 80:80 nginx
    

    启动docker中的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

    4.1.2测试验证

    http://localhost

    4.1.3.与容器通过bash交互

    docker exec -it webserver bash
    

    修改nginx配置文件

    echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
    

    刷新链接,并且测试验证
    http://localhost

    远程登录docker中的mysql

    查看在运行的容器

    命令

    docker ps 
    

    返回效果

    image.png

    进入mysql服务中进行设置

    命令

    docker exec -it bcf6309de533 bash
    

    返回效果

    image.png

    命令解析

    参考地址:http://www.runoob.com/docker/docker-exec-command.html
    docker exec :在运行的容器中执行命令
    语法
    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    OPTIONS说明:

    • -d :分离模式: 在后台运行
    • -i :即使没有附加也保持STDIN 打开
    • -t :分配一个伪终端

    5.常用命令行

    5.1列出容器

    docker ps:列出容器

    5.1.1OPTIONS说明:

    • -a :显示所有的容器,包括未运行的。
    • -f :根据条件过滤显示的内容。
    • --format :指定返回值的模板文件。
    • -l :显示最近创建的容器。
    • -n :列出最近创建的n个容器。
    • --no-trunc :不截断输出。
    • -q :静默模式,只显示容器编号。
    • -s :显示总的文件大小。

    5.1.2常用示例:

    # 列出所有正在运行的容器信息
    docker ps
    # 列出最近创建的5个容器
    docker ps -n 5
    # 列出所有容器的容器编号
    docker ps -a -q
    

    5.2删除容器

    docker rm :删除一个或多少容器

    5.2.1OPTIONS说明:

    • -f :通过SIGKILL信号强制删除一个运行中的容器
    • -l :移除容器间的网络连接,而非容器本身
    • -v :-v 删除与容器关联的卷

    5.2.2常用示例

    # 强行删除容器 db01和db02
    docker rm -f db01 db02
    # 
    docker rm -l db 
    #
    docker rm -v nginx01
    

    5.3运行容器

    docker run:运行容器

    5.3.1OPTIONS说明:

    -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
    -d: 后台运行容器,并返回容器ID;
    -i: 以交互模式运行容器,通常与 -t 同时使用;
    -p: 端口映射,格式为:主机(宿主)端口:容器端口
    -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=[]: 开放一个端口或一组端口;

    5.3.2常用示例

    # 使用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
    # 绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
    docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
    

    5.4 启动/停止/重新启动容器

    docker start:启动一个或多个已经被停止的容器
    docker stop:停止一个正在运行中的容器
    docker restart:重启容器

    5.4.1常用实例

    # 启动
    docker start 容器id
    # 停止
    docker strop 容器id
    # 重启
    docker restart 容器id
    

    PS:

    docker run 与docker start的区别:
    docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即可。
    docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。

    docker kill 和 dockerstop 有什么区别:
    有区别的,kill是不管容器同不同意,我直接执行kill -9,强行终止;stop的话,首先给容器发送一个TERM信号,让容器做一些退出前必须的保护性、安全性操作,然后让容器自动停止运行,如果在一段时间内,容器还是没有停止,再进行kill -9,强行终止。

    相关文章

      网友评论

        本文标题:mac 下docker使用

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