Docker常用命令

安装镜像
docker pull 镜像名称
docker run 镜像名称
例: docker pull microsoft/dotnet-samples
如果国外的镜像仓库下载慢的话,可以用国内的镜像仓库


安装镜像并映射端口
docker -it 镜像名称
docker -d 镜像名称
语法 docker run -it -p 对外端口:docker内部端口 --name 容器名称 镜像全名
例: docker run -it -p 8000:80 --name aspnetcore_sample microsoft/dotnet-samples:aspnetapp
例: docker run -d -p 8000:80 --name aspnetcore_sample microsoft/dotnet-samples:aspnetapp
例: docker run -d -p 8000:80 -v /var/www/webapp --name aspnetcore_sample microsoft/dotnet-samples:aspnetapp
例: docker run -d -p 8000:80 -v /var/www/webapp --workdir "/app" --name aspnetcore_sample microsoft/dotnet-samples:aspnetapp
参数说明:
-it 交互模式
-d 后台运行模式
--rm 表示容器运行完之后自动删除容器
-p 映射端口,对外端口:docker内部端口
--name 容器名称
-v 表示给容器创建一个卷并给卷指定路径(路径可以随意指定),以后往容器里添加代码时,代码就存放在卷里持久化,当容器删除时,代码还在。
--workdir 表示容器工作所在路径
-e 设置环境变量,用法: -e dataserver=./mysql5.8


快捷键
ctrl+c 停止容器,如果加了-rm参数,会删除容器
ctrl+p,ctrl+q,退出,但是让容器保持运行


列出所有镜像
docker images


查看本地镜像
docker image ls

查找docker hub上的镜像
docker search 镜像名
例: docker search redis

删除镜像
docker rmi 镜像名称或镜像ID


删除所有镜像
docker rmi $(docker ps -aq)


删除容器
docker rm 容器名称或容器ID


删除所有容器
docker rm $(docker ps -aq)


查看在运行的容器
docker ps


查看在运行以及停止的容器
docker ps -a


启动容器
docker start 容器名称或容器ID


停止容器
docker stop 容器名称或容器ID


停止所有容器(windows系统需要在PowerShell模式下才支持)
docker stop $(docker ps -aq)


查看容器的运行日志
docker logs 容器ID


** 进入到某个容器命令行窗口,进行容器相关的操作
docker exec -it 容器ID /bin/bash

docker exec -it 容器ID bash
然后可以使用容器里的命令
例如:
ls
ls -al
clear


退出容器命令行窗口
exit 用于windows
ctrl+p,ctrl+q


查看容器的配置信息
docker inspect 容器ID


构建镜像
docker build -t 镜像名 .
例: docker build -t myaccount/mywebabb .
-t 表示镜像名,后面的圆点符号前面有一个空格,表示当前目录。


登录docker hub
docker login


发布镜像到docker hub
docker push 用户名/镜像
例: docker push yeecat/asp.netcore_demo


创建容器网络
docker network create --driver bridge 网络名


查看容器网络列表
docker network ls


让容器加入容器网络
docker run -d --network=网络名 --name 网络内的容器名 镜像名


查看容器网络配置信息
docker network inspect 网络名


删除容器网络
docker network rm 网络名

Volume是什么?
Volume(卷)是容器中一个特别种类的目录,通常叫做数据volume,顾名思义,里面可以放置各种类型的数据,例如代码、日志文件、数据文件等等。
Volume可以在容器间被共享和复用,可以让多个容器对同一个volume进行读写,也可以让一个容器读写多个volume。
对镜像的更新并不会影响volume。
Volume是被持久化的,即使容器删除了,volume仍然存在。


如何把源代码装进容器里?
1) 可以在制作镜像时直接把源码嵌入里面。
2) 把源码挂载到容器的可读写层(卷里面)。

原文地址:https://www.cnblogs.com/yyee/p/12734853.html