docker常见命令
2019-04-15 本文已影响0人
leivers
docker镜像命令
docker search centos -s 100 搜索镜像/-s 星级参数
docker pull centos 拉取镜像
docker image list docker images 查看本地镜像
docker image inspect 镜像id 查看镜像详情
docker rmi centos --force 删除镜像/--force 强制删除 不能删的话就先删容器
docker image -q 查看所有镜像的id
docker image history 名称/id 查看镜像的制作过程
查看容器运行状态
docker ps / docker container ls 查看当前运行的容器
docker ps -a 查看所有运行的容器(运行/不运行)
ctrl+p+q 退出时后台运行
exit 关闭并退出
容器命令
docker run -it centos /bin/bash 创建并运行新容器
docker create -it centos /bin/bash 创建但不运行
docker start 名称/id 启动容器
docker attach 名称/id 连接容器(在开启状态下能够再次连接)
docker create -it --restart=always centos /bin/bash --restart=always
docker start centos 启动centos服务
systemctl restart docker 重启容器服务
docker inspect 容器id 查看容器详细信息
docker inspect --format '{{.brings.Gatway}}' centos 按指定格式输出
docker start 名称/id 启动容器
docke rm 名称/id 删除容器
docker stop 名称/id 关闭容器
docker kill 名称/id 强制关闭容器
docker rm `docker ps -a |awk '/Exited/{print $1}'` 删除所有已关闭的容器
docker pause 名称/id 暂停容器内的所有进程
docker unpause 恢复容器暂停的进程
docker run -it -d --rm --name "testcontainer" 镜像ad 运行一个自定义名字的容器(后台运行)
-d 运行在后台 --rm 退出时删除容器
docker ps
1 docker attach 名称/id
ls
2 docker logs 名称/id 能够查看终端1中执行的命令
docker ps
docker rename id/名称 hahahaha 将容器重新命名
docker ps
把正在运行的容器直接导出成tar包的镜像文件
docker ps #确定正在运行的容器
docker export 容器名称 > 镜像.tar #将容器打包成tar包
导入镜像归档文件到其他宿主机:
docker import python_app.tar python_app:v3
docker images
镜像没有名字,随后可以单独起名字(name和tag)
docker 镜像id mycentos:v3
镜像迁移
docker save -o nginx.tar nginx
docker load < nginx.tar
将正在运行的容器直接提交成为一个镜像
docker start id/名称 #启动容器
docker exec -it id/名称 /bin/bash # exec 表示后面加可执行的命令参数 进入容器
touch test.txt #创建一个文件
exit #退出
docker commit id/名称 wing/helloworld:v2 #将新建的文件提交到镜像中保存
通过dockerfile创建镜像
# docker pull python:2.7-slim # 使用官方提供的 Python 开发镜像作为基础镜像
1 创建镜像所在的文件夹和Dockerfile文件夹
# mkidr python_app
# cd python_app
# vim app.py
from flask import Flask
import socket
import os
app = Flask(__name__)
@app.route('/')
def hello():
html = "<h3>Hello {name}!</h3>" \
"<b>Hostname:</b> {hostname}<br/>"
return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname())
if __name__ == "__main__":
app.run(host='0.0.0.0', port=80)
2 应用依赖
# vim requirements.txt
Flask
3 Dockerfile制作容器镜像:
# vim Dockerfile
FROM python:2.7-slim
WORKDIR /app
ADD . /app
RUN pip install --trusted-host pypi.python.org -r requirements.txt
EXPOSE 80
ENV NAME World
CMD ["python", "app.py"]
# ls
Dockerfile app.py requirements.txt
4 构建镜像:
# docker build -t id/名称 .
# 查看结果
docker image ls
# 启动容器
docker run -p 4000:80 id/名称
# 查看容器
docker ps
# 进入容器
docker exec -it id /bin/bash
# 访问容器应用
curl http://10.0.104.200:4000
给容器镜像打tag起一个完整的名字:
# docker tag helloworld yanqiang20072008/helloworld:v1
yanqiang20072008为我在docker hub的用户名
推送镜像到docker hub:
# docker push yanqiang20072008/helloworld:v1