文章目录

  • 安装及使用Docker
  • Docker安装
  • 配置Docker加速器
  • Docker常用操作


安装及使用Docker

Docker安装

#进到/yum.repos.d/目录下,下载Docker源
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#清除缓存
[root@localhost yum.repos.d]# dnf clean all

#建立缓存
[root@localhost yum.repos.d]# dnf makecache

#下载Docker
[root@localhost ~]# dnf -y install docker-ce

#设置开机自启,并立马启动
[root@localhost ~]# systemctl enable --now docker

配置Docker加速器

docker-ce的配置文件是/etc/docker/daemon.json,此文件默认不存在,需要我们手动创建并进行配置,而docker的加速就是通过配置此文件来实现的。

docker的加速有多种方式:

  • 阿里云加速器(需要通过阿里云开发者平台注册帐号,免费使用个人私有的加速器)
#配置加速器
[root@localhost ~]# vim /etc/docker/daemon.json
[root@localhost ~]# cat /etc/docker/daemon.json
{
  "registry-mirrors": ["https://1izcbhll.mirror.aliyuncs.com"]
}
#重新加载程序
[root@localhost ~]# systemctl daemon-reload

#重启Docker
[root@localhost ~]# systemctl restart docker

docker version #查看docker的版本
docker info #查看docker信息

Docker常用操作

#搜索镜像tkl9639/httpd
[root@localhost ~]# docker search tkl9639/httpd
NAME            DESCRIPTION   STARS     OFFICIAL   AUTOMATED
tkl9639/httpd                 0                    

#从Docker Hub中提取镜像busybox
[root@localhost ~]# docker pull busybox

#查看镜像
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
busybox      latest    beae173ccac6   4 months ago   1.24MB

#创建容器名叫web、-p是把容器的80端口映射到真机上,用httpd镜像创容器
[root@localhost ~]# docker create --name web -p 80:80 httpd

#列出正在运行和没有在运行的容器
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS    PORTS     NAMES
215408f872c4   httpd     "httpd-foreground"   10 seconds ago   Created             web

#启动容器、可以使用名字启动也能用ID启动
[root@localhost ~]# docker start web

#列出正在运行的容器
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND              CREATED         STATUS              PORTS                               NAMES
215408f872c4   httpd     "httpd-foreground"   3 minutes ago   Up About a minute   0.0.0.0:80->80/tcp, :::80->80/tcp   web

#停止容器,使用ID停止
[root@localhost ~]# docker stop 215408f872c4

#用防火墙放行协议
[root@localhost ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=0.0.0.0/0 service name=http accept' --permanent

#重新加载
[root@localhost ~]# firewall-cmd --reload

#查看状态
[root@localhost ~]# firewall-cmd --list-all
........省略
	rule family="ipv4" source address="0.0.0.0/0" service name="http" accept #看到这个就可以在真机里访问

#注意:在centos8版本里不设置防火墙放行是访问不了的

#杀死容器web (强制退出)
[root@localhost ~]# docker kill web

#查看日志
[root@localhost ~]# docker logs web
............省略
192.168.229.1 - - [07/May/2022:08:01:46 +0000] "GET / HTTP/1.1" 304 -
192.168.229.1 - - [07/May/2022:08:08:05 +0000] "GET /ffdhskhdf HTTP/1.1" 404 196

#删除容器(删除在运行的容器加上-f)
[root@localhost ~]# docker rm -f  web
#停掉容器再删除它
[root@localhost ~]# docker stop web
web
[root@localhost ~]# docker rm web
web


#运行一个命令在一个新容器里面run命令,如果没有容器它会自动拉容器下来再启动 
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
httpd        latest    dabbfbe0c57b   4 months ago   144MB

#上面是没有busybox镜像,现在启动它,它会自动从docker官网拉下来
启动busybox,并进到容器里面执行/bin/sh,-it是交互模式
[root@localhost ~]# docker run -it --name test busybox /bin/sh
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
5cc84ad355aa: Pull complete 
Digest: sha256:5acba83a746c7608ed544dc1533b87c737a0b0fb730301639a0179f9344b1678
Status: Downloaded newer image for busybox:latest
/ # 

#启动容器,进到里面用attach或exec (推荐用exec)
#启动
[root@localhost ~]# docker start test
test
[root@localhost ~]# 
#进到容器里面attach
[root@localhost ~]# docker attach test 
/ # 
#使用attach进入容器,退出容器就会自动关闭容器

#进到容器里面exec
[root@localhost ~]# docker exec -it test /bin/sh
/ # 
#使用exec进入容器,退出来不会停掉容器

#查看test容器的详细信息(使用inspect命令)
[root@localhost ~]# docker inspect test
....省略
     "Gateway": "172.17.0.1",
     "IPAddress": "172.17.0.2",
......省略

#启动一个容器,-d让它在后台运行,不做端口号映射在外面主机上是访问不到
[root@localhost ~]# docker run  -d --name web httpd

#使用inspect命令查看httpd镜像
[root@localhost ~]# docker inspect httpd

命令

功能

docker search

在Docker Hub上搜索镜像

docker pull

从Docker Hub中提取镜像

docker images

查看镜像

docker create

创建一个新容器

docker start

启动容器

docker run

在新容器中运行命令

docker attach

连接到运行的容器

docker ps

列出正在运行的容器 (加上-a就是列出运行和没有运行的)

docker logs

获取容器日志

docker restart

重启容器

docker stop

停止一个或多个运行中的容器

docker kill

杀死一个或多个运行中的容器

docker rm

移除一个或多个容器

docker exec

在运行的容器中运行命令

docker info

Display system-wide information

docker inspect

容器或镜像的详细信息