docker文档
安装docker
1.卸载老版本
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
2.安装工具包并设置存储库
sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.安装docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io
4.运行docker
sudo systemctl start docker
5.设置镜像加速器
设置国内镜像仓库
阿里云镜像加速器、网易云加速器
参考:阿里云官网进去,控制台->产品与服务->容器镜像服务->镜像工具->镜像加速器
设置镜像加速器
###创建docker目录 sudo mkdir -p /etc/docker ###设置镜像加速器地址 sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://43vwi36n.mirror.aliyuncs.com"] } EOF ###重启docker后台线程 sudo systemctl daemon-reload ###重启docker服务 sudo systemctl restart docker
以后docker-hub搜到的所有软件,想要下载都是通过阿里云镜像加速进行下载
6.docker常用命令
1.帮助命令
查看版本
docker version(-v)
详细信息
docker info
帮助命令
docker help
设置开机自启
sudo systemctl enable docker
2.镜像命令
列出本地主机上的镜像
docker images
搜索镜像名字
docker search xx
下载镜像
docker pull 镜像名字[:TAG]
删除镜像
docker rmi xx镜像名字/id docker rmi -f xx镜像名字/id //强制删除一个 docker rmi -f 镜像名1:TAG 镜像名2:TAG //删除多个 docker rmi -f $(docker images -qa) //删除全部
3.容器命令
前提条件:必须有镜像才能创建容器
新建并启动容器
docker run [OPTIONS] IMAGE[COMMAND][ARG...]
OPTIONS说明(常用):有些是一个减号,有些是两个减号 OPTIONS说明(常用):有些是一个减号,有些是两个减号 --name="容器新名字":为容器指定一个名称; -d:后台运行容器,并返回容器ID,也即启动守护式容器; -i:以交互模式运行容器,通常与-t同时使用; -t:为容器重新分配一个伪输入终端,通常与-i同时使用: -P:随机端口映射; -p:指定端口映射,有以下四种格式 ip:hostPort:containerPort ip::containerPort hostPort:containerPortcontainerPort containerPort
列出当前所有正在运行的容器
docker ps [OPTIONS] OPTIONS说明(常用): -a :列出当前所有正在运行的容器+历史上运行过的 -l:显示最近创建的容器。 -n:显示最近n个创建的容器。 -q:静默模式,只显示容器编号。 --no-trunc :不截断输出。
退出容器
exit //容器停止退出 ctrl+P+Q //容器不停止退出2.检查docker是否下载镜像
启动容器
docker start 容器id或者容器名
重启容器
docker restart 容器id或者容器名
停止容器
docker stop 容器id或者容器名
强制停止容器
docker kill 容器id或者容器名
删除已停止容器
docker rm 容器id
###一次性删除多个容器
docker rm -f $(docker ps -a -q)
docker -a -q | xargs docker rm
###区别:rm是删除容器 rmi删除镜像
重点
启动守护式容器
docker run -d 容器名 ###docker ps -a 进行查看, 会发现容器已经退出
Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行
docker后台运行
docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done"
查看容器日志
docker logs -f -t
--t
ail
容器ID
* -t 是加入时间戳
* -f 跟随最新的日志打印
* --tail 数字 显示最后多少条
查看容器内运行的进程
docker top 容器ID
查看容器内部细节
docker inspect 容器ID
进入正在运行的容器并以命令行交互
docker exec -it 容器ID bashShell
重新进入
docker attach 容器ID
上述两个区别
- attach: 直接进入容器启动命令的终端,不会启动新的进程
- exec: 是在容器中打开新的终端,并且可以启动新的进程
从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径