Docker使用笔记

一、在运维及项目开发中,标准的Docker使用姿态是先建立Dockerfile,然后build这个Dockerfile生成image。之后就可以运行image。生成的image储存在本地docker仓库(Registry)。

二、Dockerfile的构建:

  1. FROM:指定image的基础容器。
  2. WORKDIR:添加容器内的用户工作目录。
  3. ADD:建立本地和容器工作目录的映射关系,例如:ADD . /app。
  4. RUN:容器内运行命令。
  5. EXPOSE:容器内的开放端口。
  6. ENV:设置容器内的环境变量。
  7. CMD:运行有参数的命令,例如:CMD [“python”, “app.py”]。

三、Dockerfile编译成image:docker build -t friendlyhello .(-t为指定tag),然后使用docker images查看所有image。

四、容器的运行(docker run [OPTIONS] IMAGE [COMMAND] [ARG …]):

  1. docker run -p 4000:80 friendlyhello(-p建立外部和容器的端口映射关系)。
  2. docker run -it friendlyhello /bin/bash(-i交互模式,-t建立伪终端,/bin/bash为[COMMAND])。

五、Docker镜像的常用命令:

  1. docker images:查看所有镜像。
  2. docker pull:从仓库里拖镜像。
  3. docker search:仓库里查找镜像。
  4. docker rmi:删除镜像。
  5. docker rmi $(docker images -q):删除所有镜像。
  6. docker inspect 镜像名称:查看镜像情况。

六、Docker容器的常用命令:

  1. docker run:运行docker镜像。同一个选项可以使用多次,例如:-v path1:path1 -v path2:path2。
  2. docker ps:查看正在运行的容器。
  3. docker stop:停止容器。
  4. docker log:查看容器内部的标准输出。
  5. docker [COMMAND] --help:首选的查看帮助文档的命令。
  6. docker top:查看容器内部的进程列表。
  7. docker rm:删除容器。
  8. docker rm $(docker ps -a -q):删除所有容器。
  9. docker exec:执行容器内的命令。
  10. 进入一个已经在运行的容器:sudo docker exec -it ******** /bin/bash。
  11. docker inspect 容器id:查看容器情况。
  12. docker inspect --format=’{{.Name}} -
    {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}’ $(docker ps -q):查看所有容器IP地址。

七、使用docker-compose批处理组合管理多个容器。构建docker-compose.yml,配置组合服务,每个服务的选项对应docker run命令的选项。

八、使用docker swarm和docker stack构建集群。

九、举例:建立一个mongodb的docker环境:docker run -it --rm mongo /bin/sh。

十、Windows机器启动docker:

  1. docker-machine create default,创建一个docker machine。
  2. docker-machine start default,然后就可以使用docker。
  3. cygwin终端融入docker管理:eval $(docker-machine.exe env)。
  4. 通过docker machine的IP地址访问容器暴露的服务。
  5. 在cygwin下报错:If you are using mintty, try prefixing the command with ‘winpty’。解决方法:到Docker Quickstart Terminal下执行docker run。
  6. docker-machine ssh可以进入default虚机。
  7. boot2docker用户和密码:docker/tcuser,可以通过sudo -i (docker用户下执行)切换到root。
  8. virtualbox共享目录必须安装增强版插件。
  9. 无法运行entrypoint.sh:pycharm中更改换行模式为LF(UNIX类型的换行)。

十一、Docker-compose的使用:

  1. docker-compose down:停止并删除所有容器。
  2. docker-compose build:编译镜像。
  3. docker-compose up -d:后台启动所有容器。

十二、Docker Hub加速器(Windows/Mac Docker Toolbox)

  1. docker-machine create --engine-registry-mirror=https://******.mirror.aliyuncs.com -d virtualbox default eval “$(docker-machine env default)”

十三、Docker Hub加速器(CentOS/Ubuntu Docker Toolbox)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

十四、Docker实例

  1. docker run -d --name es -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” elasticsearch:7.4.1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值