安装docker的准备工作

参考文档>>>https://yeasy.gitbook.io/docker_practice/

DockerHub官网>>>https://hub.docker.com/

  • 升级centos的yum源

sudo yum update

  • 设置yum源

官方源>sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

三方源>sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  • 安装依赖包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

  • 安装docker

sudo yum install docker-ce docker-ce-cli containerd.io

docker镜像加速

参考文档>>>https://www.cnblogs.com/nhdlb/p/12567154.html

cd /etc/docker

vi daemon.json

修改daemon.json文件

{

"registry-mirrors": ["https://hub-mirror.c.163.com","https://mirror.baidubce.com"]

}

docker的启动,重启,停止,查看运行状态

  • 启动>>systemctl start docker

  • 重启>>systemctl restart docker

  • 停止>>systemctl stop docker

  • 状态>>systemctl status docker

验证是否安装成功:(有Client和Server表示安装启动成功)

>>docker version

docker镜像

docker search>查询(centos)镜像>>docker search centos

  • 下载镜像

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

docker pull>下载镜像>>docker pull centos:7

  • 查看镜像

docker image ls    或者    docker images

更详细的查看>>docker image ls --no-trunc

查询某个镜像>>docker image inspect [Repository:Tag    或    Image ID]

只查看镜像ID>>docker images -q

  • 镜像的导入导出

导出>>docker image save [Repository:Tag    或    Image ID] > /opt/[Repository].tar.gz

导出>>docker image load -i /opt/[Repository].tar.gz

改名>>docker image tag [Image ID] [Repository:Tag]

  • 镜像的删除(谨慎使用)

删除>>docker image rm -f [image ID]    (-f 表示强制删除)

删除全部>> docker image rm -f docker image ls -q    (docker image ls -q, 表示查看全部镜像)

docker容器以及管理

交互式容器

  • 运行容器

运行>>docker container run -it [Image ID]

  • 查看容器

查看>>docker container ls

>>Container ID: 容器的唯一ID(默认自动生成)

>>Image: 容器对应的镜像ID

>>Command:启动容器时的命令

>>Created:容器启动时间

>>Status:容器运行状态(Up为正在运行,Exited表示未运行)

>>Ports:容器的端口号

>>Names:容器名称

自定义一个容器名称>>docker container run -it --name='new_centos7' [image ID]

守护式容器

  • 运行容器

运行>>docker run -d --name='nginx' [Image ID]

  • 查看容器

查看>>docker container inspect [Container Name    或    Container ID]

并验证能否访问

容器的应用场景

  • 交互式容器(工具类):开发,测试,临时性的任务等

容器退出交互式shell后自动删除容器>>docker container run -it --name='centos7' --rm [Image ID]

  • 守护式容器(服务类):网络维护SSH,

暴露端口运行>>docker run -d -p 8080:80 --name='nginx' [Image ID]

8080端口为自己设置的转发端口号

80为nginx代理的http端口

8080:80映射转发端口号,在任意设备上都可访问

  • 对于已有容器的启动,关闭,连接

启动>>docker container start [-i] (交互式) [Container ID]

停止>>docker container stop [Container ID]

连接>>docker container attach [交互式镜像Container ID]

>>docker container exec -it [交互式子进程Container ID] /bin/bash    在已有工作容器中生成子进程登录,可做调试,也不会影响原有容器的运行

容器的网络访问

  • 指定映射(默认tcp)

>>docker run -d -p 8080:80 --name='nginx' [Image ID]

>>docker run -d -p 192.168.1.1:8081:80 --name='nginx' [Image ID] 对应网段固定端口号

  • 随机映射(默认tcp)

>>docker run -d -p 80 --name='nginx' [Image ID]

>>docker run -d -p 192.168.1.1::80 --name='nginx' [Iamge ID]对应网段端口号随机

容器的其他管理

只看ID>>docker Image ls -aq    docker container ls -aq

看logs>>docker container logs [Container ID] 显示日志信息

>docker container logs -t [-tf] [Container ID] 显示更详细的日志信息(时间戳)

总结:

1,镜像类

docker image

search查(是否有docker镜像)

pull下载

ls查询(已下载的)

inspect详细信息

rm删除

save导出

load导入

2,容器类

docker container

run运行

start启动

stop停止

restart重启

kill杀死

inspect详细信息

exec用/bin/bash进入容器

attach进入容器

ls查看

top查看

logs查看日志