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
上一篇下一篇

猜你喜欢

热点阅读