Docker基础

Docker基础

安装Docker

  • yum install -y docker

启动Docker服务(Docker Engine)

  • systemctl start docker

Docker配置文件

  • Docker数据文件在/var/lib/docker/devicemapper/devicemapper/data目录下

Docker下载镜像

  1. docker pull docker.io/NAME 拉取镜像
  2. docker pull 其他网站的url/name 拉取镜像

Docker启动一个实例

  • 前奏: echo 1 > /proc/sys/net/ipv4/ip_forward开始网络转发, 不开就上不了网; 或者vim /etc/sysctl.conf

net.ipv4.ip_forward = 1
* 接着使用命令`sysctl -p`生效
  • docker run -it centos:latest /bin/bash

    • -i: interactive
    • -t: tty, 一般-i与-t一起使用
    • 一般-i与-t一起使用, 所以-it
    • centos为镜像, latest为一个标签, 类似于git的一个版本, centos是我们的项目, latest就是版本
    • /bin/bash为docker启动执行的命令
  • docker run 启动持久的服务

    • docker run -d docker.io/centos:latest bash -c "echo hello world"
      • -d: 为daemon
      • -c: 为后序要执行的命令
      • 返回容器id
  • docker ps: 列出运行中容器
    • -a: 列出所有容器

进入正在运行的容器

  • docker exec -it containerId /bin/bash # 相当于开启一个新的tty并执行bash进入

Docker删除一个容器

  • docker rm containerId

Docker关闭运行中的容器

  • docker stop containerId

Docker杀死运行中的容器

  • docker kill containterId

保存镜像的两种方式

方法一

  • docker commit containerId imageName

方法二

  • 使用Dockerfile文件

FROM docker.io/images:tag # 根据该镜像启动一个容器
MAINTAINER <name@domain> # 作者邮箱
RUN yum install -y httpd # 在容器中执行命令, 一般用于安装软件
ADD file /usr/local/bin/file # 将当前目录下的file拷贝到容器中/usr/local/bin/file
CMD echo hello, world # 一个Dockerfile只能执行一个CMD, 最后一个CMD有效, 一般用于启动服务
EXPOSE 80 # 开放80端口
  • docker build -t imgName:tag DockerfilePath
    • -t 表示标签
    • tag随意, imgName需要时FROM中提到的

发布保存的镜像

  • docker save -o ***.tar imgName:tag

删除镜像

  • docker rmi imgId

导入本地镜像

  • docker load -i ***.tar

读取日志

  • docker logs ContainerID

端口映射

  • 在使用docker run使用使用-p 主机ip:containerIP即可

DockerHub登录

docker命令登录到DockerHub上

  • docker login -u username -p password -e email
  • 使用docker push img:tag发布镜像到DockerHub
posted @ 2019-01-31 20:03  gogogo11  阅读(199)  评论(0编辑  收藏  举报