docker的基本操作
一、docker的安装
通用系统配置
编辑
/etc/sysctl.conf在文件中追加net.ipv4.ip_forward=1允许容器之间互相访问执行更新配置命令
sysctl -p
1.外网环境安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun2.纯内网环境安装
下载地址:https://download.docker.com/linux/static/stable/
选择CPU类型,一般都是x86
下载安装包,一般下载最新安装包,在此已 docker-20.10.9.tgz 为例
开始安装
保证登陆账号为root或者有root权限
上传 二进制运行包 到 /usr/local/ 并且切换至该目录下
在 /usr/local/ 目录下执行一下命令
tar zxf docker-20.10.9.tgz注意:docker-20.10.9.tgz为下载安装包版本,根据实际情况而定cp docker/* /usr/bin/新建文本文件
/usr/lib/systemd/system/docker.service以下为该文本内容
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target3.设置和验证
设置开机启动
systemctl enable docker启动docker服务
systemctl restart docker验证docker是否安装成功
docker ps
出现以下结果证明安装成功,出现其他结果证明安装失败
[root@a23-13-5-182 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES二、docker的基础操作
1.镜像的搜索
1.通过dockerhub搜索(推荐,但是需要翻墙)
2.通过命令搜索
docker search mysqlNAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 14559 [OK]
mariadb MariaDB Server is a high performing open sou… 5557 [OK]
phpmyadmin phpMyAdmin - A web interface for MySQL and M… 883 [OK]
percona Percona Server is a fork of the MySQL relati… 620 [OK]
databack/mysql-backup Back up mysql databases to... anywhere! 101
bitnami/mysql Bitnami MySQL Docker Image 100 [OK]二.本地镜像查看
docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE
mysql 8 99afc808f15b 2 months ago 577MB
mysql 8.0.27 3218b38490ce 22 months ago 516MB
centos 7.9.2009 eeb6ee3f44bd 2 years ago 204MB三、拉取本地没有的镜像
docker pull mysql:5.6注意:pull后面的 mysql是镜像名称,冒号后面的是镜像版本
四、运行一个镜像
#已基本的运行
docker run mysql:5.6注意:如果本地没有镜像在run的时候也会自动pull
五、查看正在运行的容器
docker ps六、查看所有的容器
docker ps -a七、几个比较完整的docker run命令
1.mysql安装命令解析
docker run --name mysql -p 3306:3306 -v /home/dmysql/data:/var/lib/mysql -d --restart=always -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6--name mysql:为容器取一个名字,可以代替ID
-p 3306:3306: 前面为宿主机的端口,后面为容器的端口,如果不配置是访问不到容器内端口的。
-v xxx : xxx 文件挂载,冒号之前的是宿主机上面的路径,冒号之后的是容器内部的路径。方便容器内外的文件交互
-d :容器运行方式
-d 后台运行
-i 保持链接(不后台运行)
-t 分配一个虚拟控制台 (it一般都是组合使用,保持链接并且分配一个控制台-it)
--restart=always : 设置docker服务启动自动启动该容器
-e 为容器中设置环境变量(这里MYSQL_ROOT_PASSWORD是容器内部自己用于设置root密码的环境变量)
最后为镜像名称加镜像版本
2.nginx安装命令解析
docker run --name nginx -d --net host \
--restart always \
-v /home/docker/nginx/config:/etc/nginx/conf.d \
-v /home/docker/nginx/html:/home/docker/nginx/html \
-v /home/docker/nginx/fileBase:/home/docker/nginx/fileBase \
-v /home/docker/nginx/ssl:/home/docker/nginx/ssl \
nginx:1.23.2-perl
安装nginx的命令和安装mysql的命令逻辑几乎一样,这里来对比一下不同的地方
多个-v : 如果需要挂载多个目录可以使用多个-v,同理如果需要添加多个端口可以使用多个-p, 添加多个环境变量使用多个-e
未使用-p映射端口:在安装nginx的时候使用了 --net host,这个作用是容器直接使用宿主机的网络和端口。
八、查看容器日志
1.查看容器完整日志(从最开始查看)
docker logs mysql2.持续查看容器日志(从最开始持续查看)
docker logs -f mysql注意: 持续查看加一个 -f 就行了
3. 查看最后100行日志
docker logs -f --tail=100 mysql注意 查看最后多少行使用--tail=数量 来查看,tail可以和-f 结合使用,也能单独使用
九、查看所有容器的资源情况
docker statsCONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
1a52be01cbf1 website 0.23% 439.3MiB / 15.11GiB 2.84% 0B / 0B 543MB / 222MB 84
19b768f95010 xxljob 0.03% 399MiB / 15.11GiB 2.58% 10.1GB / 7.85GB 119MB / 0B 60
1ad0ac169e13 demo_system 1.69% 5.21GiB / 15.11GiB 34.49% 0B / 0B 4.18GB / 717MB 927
8e5a76cd0417 Nginx 0.00% 49.71MiB / 15.11GiB 0.32% 0B / 0B 101MB / 0B 2
0fd068630f44 frps 0.00% 32.02MiB / 15.11GiB 0.21% 0B / 0B 67.8MB / 0B 7
dfe07b8eca9a Redis 0.07% 9.594MiB / 15.11GiB 0.06% 1.83GB / 268GB 26.5MB / 700MB 5
630175c96f8a MySQL 0.07% 1.879GiB / 15.11GiB 12.44% 10.1GB / 27.7GB 5.86GB / 513GB 80
9061f713f92b Nacos 1.01% 1.537GiB / 15.11GiB 10.17% 48.4GB / 58.3GB 268MB / 101MB 359这个命令可以看到所有容器的 CPU、内存、ID等使用情况。