Docker基础
安装Docker
yum install -y docker
启动Docker服务(Docker Engine)
systemctl start docker
Docker配置文件
- Docker数据文件在/var/lib/docker/devicemapper/devicemapper/data目录下
Docker下载镜像
docker pull docker.io/NAME
拉取镜像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