docker安装配置及基础使用
1.docker官方文档地址:https://docs.docker.com/engine/install/centos/
2.使用国内阿里云源安装最新版docker-ce
卸载旧版本docker:yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 安装docker源:yum install -y yum-utils && yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装docker-ce:yum install -y docker-ce
3.验证docker安装是否成功:docker version
4.启动docker:systemctl start docker.service
5.设置开机自动启动:systemctl enable docker.service
6.配置docker国内加速器【注册阿里云账号到容器服务即可以拿到此地址】:vim /etc/docker/daemon.json
{ "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"] } 重启生效:systemctl restart docker.service
===========================================================修改docker工作目录,避免占满/磁盘===========================================================
1.停止docker服务
systemctl stop docker
2.创建新的docker目录,执行命令df -h,找一个大的磁盘。 我在 /data目录下面建了 /data/docker/lib目录
mkdir -p /data/docker/lib
3.迁移/var/lib/docker目录下面的文件到 /data/docker/lib
rsync -avz /var/lib/docker /data/docker/lib/
4.配置 /etc/systemd/system/docker.service.d/devicemapper.conf。查看 devicemapper.conf 是否存在。如果不存在,就新建
mkdir -p /etc/systemd/system/docker.service.d/ vim /etc/systemd/system/docker.service.d/devicemapper.conf
[Service] ExecStart= ExecStart=/usr/bin/dockerd --data-root=/data/docker/lib/docker
5.重新加载 docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
6.命令检查Docker 的根目录
docker info Docker Root Dir: /data/docker/lib/docker
7.启动成功后,再确认之前的镜像还在,再删除/var/lib/docker/目录中的文件
===========================================================修改docker工作目录,避免占满/磁盘===========================================================
===========================================================开启docker的外部访问===========================================================
注意:将 Docker 守护进程暴露在未加密的端口上可能会导致安全风险,请谨慎使用。建议使用云安全组限制访问ip
1. 修改配置文件 /etc/docker/daemon.json
{ "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"], "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] }
2. 重新加载 docker
systemctl daemon-reload systemctl restart docker
3. 外部连接docker
docker -H tcp://ip地址:2375 info
===========================================================开启docker的外部访问===========================================================
===========================================================下面是常用实例===========================================================
1.查找镜像仓库可用的镜像:docker search nginx
2.从镜像仓库下载一个镜像:docker pull nginx
3.查看本地镜像库:docker images
4.删除一个未运行容器的镜像:docker rmi nginx 或者 docker image rm nginx
删除所有的容器:docker rm -f $(docker ps -qa)
-a:查看所有容器,包含退出的
-q:列出所有的容器id
5.删除全部镜像:docker image rm -f $(docker image ls -qa)
6.运行一个nginx容器:docker run -it -d --restart=always --name=nginx_8080 -p 8080:80 -v /data/nginx_8080:/usr/share/nginx/html -m 500m --cpus=1 nginx
-it -d:分配一个伪终端在后台运行容器 --restart=always:容器退出时自动重启 --name:指定容器名称 -p 8080:80:映射容器端口80到宿主机端口8080 -v /data/nginx_8080:/usr/share/nginx/html:将 容器/usr/share/nginx/html目录 挂载到 宿主机/data/nginx_8080目录【宿主机目录会自动创建】 -m 500m:限制内存 --cpus=1:限制cpu使用数量
测试访问:http://10.200.202.83:8080/
7.查看正在运行的容器:docker ps
显示所有的容器:docker ps -a
显示最新创建的容器:docker ps -l
8.进入容器执行指令:docker exec -it ef1da754d15a /bin/bash
测试访问:http://10.200.202.83:8080/
9.直接对容器执行一个指令:docker exec -it ef1da754d15a ls /usr/share/nginx/html/
docker exec -it ef1da754d15a cat /usr/share/nginx/html/index.html
10.导出一个镜像到归档文件,迁移镜像时可用:docker save nginx -o nginx.tar.gz
11.删除一个正在运行的容器:docker rm -f dc9d7cbc06aa
12.从归档文件导入一个镜像:docker load -i nginx.tar.gz
13.拷贝一个文件到容器:docker cp /root/anaconda-ks.cfg 223f73ef996e:/usr/share/nginx/html/
14.查看容器的日志输出:docker logs 223f73ef996e -f -n10
16.移除所有已停止的容器:docker container prune
17.查看容器的端口:docker port nginx_8080
18.查看容器运行的进程:docker top nginx_8080
19.显示容器资源使用统计:docker stats --all nginx_8080
不循环输出:docker stats --all nginx_8080 --no-stream
做筛选统计:docker stats nginx_8080 --no-stream | awk 'NR==2{print $3}' #取cpu使用情况,打印第二行
一些事情一直在干,说不定以后就结果了呢
本文来自博客园,作者:chenjianwen,转载请注明原文链接:https://www.cnblogs.com/chenjw-note/p/15091668.html