Docker的使用(镜像,容器,Dockfile)
docker基本原理
https://www.jianshu.com/p/99cd35757c1a
docker在线安装
sudo yum install docker-ce
查看版本
docker -v
docker 离线安装
linux离线安装docker (18.03.1-ce)
启动
- systemctl docker start
- systemctl docker restart
- systemctl docker stop
镜像
搜索镜像:
docker search [镜像名]
如:docker search centos
拉取镜像
docker pull [镜像名]
上传自己镜像至https://hub.docker.com/
1、将本地先在 https://hub.docker.com/ 网站注册用户,比如 lishengping;
2、将本地镜像命名至格式:lishengping/镜像名 比如lishengping/my_images
3、登陆:sudo docker login 根据提示输入用户名和密码(用户名和密码为刚刚注册的)
4、sudo docker push lishengping/my_images.
PS: 一定要在镜像的名称前加上自己用户名作为前缀,不然会报 “denied: requested access to the resource is denied” 错误
例子:从hub.docker.com拉取自己的docker镜像
docker pull lishengping/stress:v1
查看镜像
docker images
删除镜像
docker rmi [镜像名|镜像id]
镜像保存至本地
docker save [镜像名|镜像id] > 【保存的路径】
docker save -o 【保存的路径】 [镜像名|镜像id]
docker export -o 【镜像名.tar】 [镜像名|镜像id]
从本地加载镜像
docker load --input 【镜像名.tar】
docker load < 【镜像名.tar】
docker load -i 【镜像名.tar】
docker import 【镜像名.tar】 [镜像名|镜像id]:tag
创建镜像
基于容器创建镜像
docker commit -m ‘创建信息’ 容器名|容器id 镜像名称:镜像标签
基于Dockerfile创建镜像
Dockerfile:
# Author: Lisen
# MANTINTAINER Lisen
# Base images
FROM centos
# ADD 会自动解压 tar 等压缩文件
ADD docker_test.tar /
# COPY 正常的复制,不解压
COPY docker_test.tar /
# RUN
RUN yum makecache
RUN yum install -y wget
RUN yum install -y vim && yum clean all
# WORKDIR 指定命令运行的路径
WORKDIR /docker_test
#CMD ["python", "--version"]
NTRYPOINT ["echo", "Hello"]
配置镜像 pull 加速器
daocloud加速
先在 www.daoclooud.io 注册,然后首页点击加速器,可以从页面获取Linux和macos加速方法
linux:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
执行: cat /etc/docker/daemon.json 会发现在文件中出现了http://f1361db2.m.daocloud.io
macos:
点击docker图标 -> prefeneces -> Daemon -> Registry-mirrors -> 添加 http://f1361db2.m.daocloud.io
阿里云加速
{
“registry-mirrors”: [“https://72idtxd8.mirror.aliyuncs.com”]
}
配置文件
centos
参数配置:/etc/default/dockers
服务配置: /lib/systemd/system/docker.service centos
ubuntu
配置参数:/etc/sysconfig/docker
服务配置:vim /lib/systemd/system/docker.service
查看镜像的创建过程:docker history
容器
创建容器:
docker run -it -d --rm --name regulation_0801 -v /Users/Lisen/Documents/docker_volumns:/volumns -p 18010:8000 -p 18011:8001 fujian_regulation_0712 /bin/bash -c “while true;do echo hello world;sleep 1;done”
-v:卷映射
–volume:卷映射
-p:指定端口映射
-P:端口随机映射
–name:容器名称
-i: 以交互模式运行容器,通常与 -t 同时使用
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d:后台运行
–rm:容器退出自动删除容器
其他参数:
/bin/bash : 启动容器时运行的命令
–cpuset==0 : 指定0号cpu
–cpu 1 : 指定cpu可使用的数量
-m : 指定容器最大可使用内存
-h: 容器的主机名
查看容器的运行情况
docker stats:
查看容器
1、查看所有容器,包括停止的容器
docker ps
2、查看运行中的容器
docker ps -a
3、查看最后创建的一个容器
docker ps -a
查看容器端口
docker port [容器名|容器id]
开始容器
1、开启容器但不进入容器
docker start [容器名|容器id]
2、开启容器同时进入容器
docker start -i [容器名|容器id]
进入容器
1、进入容器,但是和别人共享一个界面
docker attach [容器名|容器id]
2、进入容器,独享一个界面
docker exec -it [容器名|容器id] /bin/bash
停止容器:
1、退出容器不停止
ctrl+P ctrl+Q
2、停止容器
docker stop [容器名|容器id]
3、快速结束容器
docker kill [容器名|容器id]
日志功能
docker logs [容器名|容器id]
参数:
-f :表示 log 打印输出
-t :表示把输出时间也打印
–tail all 表示输出所有行
–tail 10 表示输出最后 10 行 my_docker 表示容器名或者 id
下一篇: 猫狗队列