2019/10/24, docker 19.03.4
摘要:docker容器常用命令整理
gitbooks文档
docker脚本安装
使用官方脚本安装docker,从阿里云下载:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
docker配置
CentOS修改docker源,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://hub-mirror.c.163.com"
]
}
修改完成后重新载入以及重启:
sudo systemctl daemon-reload
sudo systemctl restart docker
镜像操作
拉取nginx镜像:docker pull nginx
列出镜像:docker image ls
删除镜像:docker image rm 501
501是要删除镜像的IMAGE ID前三位
镜像导出,导出nginx镜像到当前目录nginx.tar中:
docker save nginx > nginx.tar
镜像导入,导入当前目录中的nginx.tar:
docker load < nginx.tar
容器操作
列出运行中的容器:docker ps
或docker container ls
列出所有容器,包括停止的:docker ps -a
或docker container ls -a
停止所有容器:docker stop $(docker ps -q)
删除所有容器:docker rm $(docker ps -aq)
或docker container prune
进入运行中的容器,当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符:
docker exec -it 9bc bash
Dockerfile
镜像构建时,安装其他工具,案例:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0
#安装ffmpeg工具(替换了阿里源,然后再安装)(centos8下无法使用该命令替换源)
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
&& apt-get update
&& apt-get install -y ffmpeg
&& apt-get clean && apt-get autoclean && apt-get autoremove
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY ./publish/ /app
#默认就是80端口,如果要别的端口,代码中要明确指定监听端口号
EXPOSE 80
ENTRYPOINT ["dotnet","WebMvc.dll"]
与Dockerfile同一目录下,构建hdmsweb镜像,hdmsweb是自己命名的镜像名称,注意hdmsweb与.之间有个空格:
docker build -t hdmsweb .
docker-compose
docker-compose启动容器,-d是后台运行:
docker-compose up -d
docker-compose查看日志:
docker-compose logs