Docker快速入门

安装

快速安装

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

curl -sSL https://get.docker.com/ | sh

启动:service/systemctl docker start

YUM安装

# 卸载旧版本
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
      
# 安装依赖和源           
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装CE
yum install docker-ce

镜像

修改镜像源地址: vi /etc/docker/daemon.json
"registry-mirrors": ["http://hub-mirror.c.163.com"]

基础命令

镜像

  • 拉取镜像
    docker pull hub.c.163.com/public/centos:7.2.1511

  • 列出本机的所有 image 文件
    docker image ls
    docker images

  • 删除 image 文件
    docker image rm [IMAGEID/NAME]
    docker rmi [IMAGEID/NAME]

  • 拉取镜像
    docker image pull [NAME:VERSION]

  • 分析镜像
    docker inspect [IMAGEID/NAME]

容器

  • 查看进程
    docker ps [-a]
    docker container ls [-a]

  • 容器监控
    docker stats

  • 容器信息
    docker inspect [CONTAINER/IMAGE]

  • 运行
    docker [container] run [IMAGE]

    • –name 指定容器名称
    • -p 容器的3000端口映射到本机的8000端口
    • -it 容器的Shell映射到当前的Shell,然后你在本机窗口输入的命令,就会传入容器
    • –rm 在容器终止运行后自动删除容器文件
    • -d 后台运行
    • -v 挂载镜像 /opt/local:/opt/docker
    • –link 链接其他容器 mysql:mysqld
    • -h 指定hostname
    • –add-host 添加host,name:ip

    docker container run -p 8000:3000 -it mydocker:0.0.1 /bin/bash
    Ctrl + P + Q退出继续运行,exit会关闭容器

  • 执行命令
    docker exec -it [CONTAINER] bash 进入bash

    • –user 指定登录用户名
  • 停止
    docker container kill [CONTAINER]

  • 删除容器文件
    docker container rm [-f] [CONTAINER]docker rm [-v] [CONTAINER]

  • 启动/关闭/重启/进程
    docker container start/stop/restart/top [CONTAINER]

  • 日志
    docker logs -f --tail 10 [CONTAINER] 持续查看最近10行

  • 重命名
    docker rename old_name new_name

  • 复制文件
    docker cp [pwd/file] [CONTAINER]:/home/app

  • 更新为自启动
    docker update --restart=always [CONTAINER]

  • 查看所有容器IP
    docker inspect --format='{{.Name}} {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

制作Docker容器

新建Dockerfile文件

FROM hub.c.163.com/public/centos:7.2.1511
RUN mkdir -p /data/{log,package}
EXPOSE 22
COPY . /opt
COPY dir/ /home/dir
ENTRYPOINT sh

创建image
docker image build -t mydocker:0.0.1 .
-t参数用来指定 image 文件的名字,后面冒号用来指定标签,注意最后.

CMD 命令:RUN命令在 image 文件的构建阶段执行,执行结果都会打包进入 image 文件;CMD命令则是在容器启动后执行。另外,一个 Dockerfile 可以包含多个RUN命令,但是只能有一个CMD命令。

指定了CMD命令以后,docker container run命令就不能附加命令了(比如前面的/bin/bash)
docker container run -p 8000:3000 -it mydocker:0.0.1

网络

bridge Nat模式
host 桥接模式
overlay 网络模式

  • 创建自定义网络
    docker network create [--driver bridge] --subnet=172.16.0.0/24 docker-br0

  • 自定义的网段选取任意IP地址
    docker run -d --name [CONTAINER_NAME] --net docker-br0 --ip 172.16.0.10 [IMAGE]

  • 查看网络
    docker network ls

  • 为容器添加网络
    docker network connect [--ip ip] [NETWORK_NAME] [CONTAINER_NAME]

磁盘

  • 查看磁盘占用量
    docker system df

  • 清理
    docker system prune

    • all stopped containers
    • all networks not used by at least one container
    • all dangling images
    • all build cache

发布镜像

网易云:
docker login -u [account] -p [password] hub.c.163.com
docker tag [IMAGE_NAME:VERSION] hub.c.163.com/jacksonrick/mydocker:0.0.1
docker push hub.c.163.com/jacksonrick/mydocker:0.0.1

阿里云:
docker login -u [account] -p [password] registry.cn-hangzhou.aliyuncs.com
docker tag jackson/fdfs:1.8 registry.cn-hangzhou.aliyuncs.com/jackson/fdfs:2.0
docker push registry.cn-hangzhou.aliyuncs.com/jackson/fdfs:2.0

导出导入

  • 将容器修改提交到镜像
    docker commit [CONTAINER] name:tag

  • 将镜像导出到文件
    docker export [CONTAINER] > image.tar

  • 创建一个新静像从基于导出的文件
    docker import - [IMAGE_NAME:VERSION] < image.tar

docker run & start

  • run
    将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)
  • start
    重新启动已存在的镜像

修改容器的挂载目录

  1. 停止docker服务
    systemctl stop docker.service
  2. vi /var/lib/docker/containers/container-ID/config.v2.json
  3. 启动docker服务
    systemctl start docker.service

常用镜像

docker pull hub.c.163.com/public/debian:8.6
docker pull hub.c.163.com/public/centos:7.2.1511
docker pull hub.c.163.com/library/java:8u111-jre
docker pull hub.c.163.com/library/java:8u111-jdk
docker pull hub.c.163.com/library/postgres:10
docker pull hub.c.163.com/library/mysql
docker pull hub.c.163.com/public/nginx:1.2.1
docker pull hub.c.163.com/library/redis
docker pull hub.c.163.com/library/rabbitmq
docker pull registry.cn-hangzhou.aliyuncs.com/jackson/fdfs:2.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值