docker 常用命令
镜像地址 hub.docker.com
- liunx 安装
sudo yum install docker
service docker start
chkconfig docker on
- mac 安装 使用安装包安装
配置注册中心(阿里云)
进入阿里云 搜索 镜像服务 找到mac 配置镜像源方式
注: 镜像中的 https 协议不要因为报错修改为http
使用
- docker pull 拉取镜像
- docker images 查看本地镜像
- docker rmi id 删除镜像
- docker ps 查看现在启动的容器
- docker ps -a 看所有容器
- docker run ubuntu:16.04 /bin/echo "hello world "
- docker run -i -t ubuntu:16.04 /bin/bash 通过bash 连接 -t 分配一个终端 -i 可以输入命令
- docker stop 容器id
- docker start 容器id
- docker rm 删除容器
- docker rm -f 不管容器是否是启动状态 删除
- docker ps -q 列出正在运行的容器id
- docker ps -a 列出所有的容器id
- docker rm -f $docker ps -aq) 删除所有容器
Daemon 守护状态运行 (后台启动 -d)
- docker run -d centos /bin/bash -c “while true;do echo hello world!;sleep 1;done”
- docker logs 容器id
- docker run -d tomcat:8.5
进入容器的两种方式
- docker run -t -i centos /bin/bash
- 方式1 docker attach 容器id
- 方式2 docker exec -i -t 容器id /bin/bash
- docker attach 容器id
- docker exec -i -t 容器id /bin/bash
以上两只能方式 exit 退出时候 第一种 容器会退出 第二种容器不退出
- 方式3 nsenser 解压 编译
- docker inspect 容器id
- docker inspect -f {{.State.Pid}} 容器id 打印pid
- nsenter --target pid --mount --uts --ipc --net --pid
- exit 退出
- 创建脚本 进入
#!/bin/bash
CNAME=$1
CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME)
nsenter --target "$CPID" --mount --uts --ipc --net --pid
导入容器
导入容器
docker 网络配置
docker 端口映射
- docker run -d -P nginx
- docker run -d -p 50000:80 nginx
数据卷
添加数据卷
- docker run -it -v /宿主机绝对目录:/容器内目录 镜像名称
- docker run --name d01 -it -v /HostDataVolume:/containerDataVolume centos
- docker run -it --name d02 --volumes-from d01 centos //d02共享d01的数据卷
DockerFile
- docker file =>(build)=> docker image =>(run)=>container
- FROM 基础镜像
- MAINTAINER 维护者信息
- RUN 运行liunx命令
- EXPOSE 暴露的端口 启动容器通过-p 设置端口
- WORKDIR 落脚点目录
- ENV key value 指定环境变量
- ADD 复制宿主机指定目录到容器指定目录
- COPY
- VOLUME 数据卷
- CMD 执行的命令
CMD ["executable","param1","param2"] exec方式
CMD command param1 param2 bin/bash中执行
CMD ["param1",'param2'] 提供给ENTRYPOINT 使用
重点: 指定 每个docker file 只能有一个cmd 多个只执行最后一个
- ENTRYPOINT 启动容器后执行的命令 切不可被docker run参数命令覆盖
- docker run -it centos -i
- ONBUILD RUN
自定义dockerfile
docker compose
curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose