文章目录
- 安装及使用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 | 容器或镜像的详细信息 |