Docker

99 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情

整体了解

阮一峰Docker入门:www.ruanyifeng.com/blog/2018/0…

前端实践:zhuanlan.zhihu.com/p/39241059

官网文档:docs.docker.com/get-started…

安装实践

  • 安装mac版本
  • 启动get-started
  • 实践里面的tutorial
    1. alpine 镜像-阿里:RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
    2. alpine镜像-中科大:RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories

不错的书

Docker--从入门到实践: yeasy.gitbook.io/docker_prac…

命令

命令功能
docker images、
docker image ls
查看镜像列表
docker system df查看镜像、容器、数据卷所占用的空间
docker image prune删除所有虚悬镜像 dangling image
docker run -t -i ubuntu:18.04 /bin/bash新建并启动容器
docker container ls -a、docker ps -a查看所有容器
docker container start启动容器
docker container restart重启容器
docker container rm删除容器
docker rm $(docker ps -aq)删除所有容器
docker exec -it bash进入容器终端
docker export 7691a814370e > ubuntu.tar导出容器
cat ubuntu.tar | docker import - test/ubuntu:v1.0导入为镜像
docker tag ubuntu:18.04 username/ubuntu:18.04
docker push username/ubuntu:18.04
docker search username查询用户名下的所有镜像(push第二天才有)
docker volume create my-vol创建一个数据卷
docker volume ls
docker volume inspect my-vol
docker volume rm my-vol
docker volume prune
docker run -d -P nginx:alpine大P随机port
docker run -d -p 8888:80 nginx:alpine小p指定接口
docker logs containerId/containerName
docker network create -d bridge my-net创建网络
docker run -it --rm --name busybox1 --network my-net busybox sh容器内:ping busybox2
docker run -it --rm --name busybox2 --network my-net busybox sh

zsh docker命令补全

docker-machine

  • docker-machine create --engine-registry-mirror hub-mirror.c.163.com --engine-opt dns=114.114.114.114 -d virtualbox manager
  • docker-machine ssh manager
  • docker swarm init
    • 会有提示 加哪个ip --advertise-addr 192.168.99.100
  • docker-machine create --engine-registry-mirror hub-mirror.c.163.com --engine-opt dns=114.114.114.114 -d virtualbox worker1
  • docker-machine ssh worker1
  • docker swarm join 复制上面manager的内容

docker-machine create -d virtualbox manager 各种报错

  1. Error with pre-create check: "VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path"

  2. No default Boot2Docker ISO found locally, downloading the latest release... 下载报超时

  3. docker镜像源访问不了!

    1. 删除manager节点
    2. 重新创建 docker-machine create --engine-registry-mirror hub-mirror.c.163.com --engine-opt dns=114.114.114.114 -d virtualbox manager
    3. 进入节点 docker swarm init --advertise-addr 192.168.99.103 (ip要和docker-machine ls里的对应)

docker config

  • 来管理服务的配置信息,我们只需在集群中的管理节点创建 config,当部署服务时,集群会自动的将配置文件分发到运行服务的各个节点中