一、docker服务启动与关闭
- docker启动
systemctl start docker //centos7.*
service docker start //centos6.*- 重启docker服务
systemctl restart docker //centos7.*
sudo service docker restart //centos6.*- 关闭docker
systemctl stop docker //centos7.*
service docker stop //centos6.*- 查看是否启动成功
docker ps -a
远程访问docker配置
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
systemctl daemon-reload
systemctl restart docker
测试:
http://ip:2375/images/json
二、docker镜像
docker image -a 列出所有镜像,包含内部镜像
docker image -q只查看id;
docker search -s 30 [imageName] star超过30的;
docker rmi 镜像ID 删除镜像
docker rmi -f 镜像ID 强制删除镜像
docker image rmi -f $(docker images |grep ‘127.0.0.1/antifraud’|awk ‘{print $3}’) 批量删除指定前缀的镜像
三、docker容器启动
1.后台启动:docker run -d 镜像名
2.交互式启动:docker run -it --name 别名 镜像名
如果加上 -rm 当容器停止,会自动删除该容器;
3. 其他参数
- -v 挂载数据文件 ,使用:-v 宿主机的绝对路径:容器内的路径
- -p 指定端口,使用:-p 容器端口:宿主机端口
挂载数据文件的其他姿势
docker run -it -v 宿主机的绝对路径:容器内的路径 镜像名
docker run -d -v 宿主机的绝对路径:容器内的路径 镜像名
docker run -it -v 宿主机的绝对路径:容器内的路径:ro 镜像名 该挂载文件夹只读;
容器数据卷继承:–volume-from
容器数据卷之间配置信息可以传递,数据卷的生命周期一直持续到没有容器使用它为止;
–privileged=true
四、 退出与进入容器
1.退出容器
- exit停止容器退出
- Ctrl+P+Q直接退出
2.进入容器
- docker exec -it 775c7c9ee1e1 /bin/bash
- docker attach 容器ID
五、dockerfile编写
步骤
- 创建dockerfile文件
- docker build -f 【dockerfile地址】-t 镜像名] [镜像地址]
- 例:docker build -f /test/Dockerfile -t /test/myImage .
- 保留字指令必须大写;
- #代表注释
- 每条指令都会创建一个新的镜像层,并对镜像进行提交;
保留字指令:
FROM:指定基础镜像
MAINTAINER:作者,邮箱信息
RUN:容器构建时需要运行的命令
EXPOSE:暴露的端口
WORKDIR:工作后登陆的目录(落脚点)
ENV:设置环境变量
ADD:解压缩和拷贝
COPY:copy a b
VOLUME:容器数据卷,用于保存数据和持久化工作;
CMD:指定容器启动时运行的命令,这里如果有多个,只有最后一个会生效;
ENTRYPOINT:指定容器启动时运行的命令,这里如果有多个会进行追加;还有一个好处是在容器外也可以进行追加;
ONBUILD:父类中的触发器,这里子类继承了父类镜像后,在子类镜像build的时候,父类镜像中的onbuild就会被触发;