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使用情况,打印第二行

 

posted @ 2021-08-02 21:00  chenjianwen  阅读(1921)  评论(13编辑  收藏  举报