Administrator
Published on 2023-10-31 / 62 Visits
0

docker的基本操作

docker的基本操作

一、docker的安装

通用系统配置

  1. 编辑 /etc/sysctl.conf 在文件中追加 net.ipv4.ip_forward=1允许容器之间互相访问

  2. 执行更新配置命令 sysctl -p

1.外网环境安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

2.纯内网环境安装

下载地址:https://download.docker.com/linux/static/stable/

  1. 选择CPU类型,一般都是x86

  2. 下载安装包,一般下载最新安装包,在此已 docker-20.10.9.tgz 为例

开始安装

  1. 保证登陆账号为root或者有root权限

  2. 上传 二进制运行包 到 /usr/local/ 并且切换至该目录下

  3. 在 /usr/local/ 目录下执行一下命令

    1. tar zxf docker-20.10.9.tgz 注意:docker-20.10.9.tgz为下载安装包版本,根据实际情况而定

    2. cp docker/* /usr/bin/

    3. 新建文本文件 /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.target

3.设置和验证

  1. 设置开机启动 systemctl enable docker

  2. 启动docker服务systemctl restart docker

  3. 验证docker是否安装成功

docker ps

出现以下结果证明安装成功,出现其他结果证明安装失败

[root@a23-13-5-182 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

二、docker的基础操作

1.镜像的搜索

1.通过dockerhub搜索(推荐,但是需要翻墙)

https://hub.docker.com/

2.通过命令搜索

docker search mysql
NAME                            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 images
REPOSITORY   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
  1. --name mysql:为容器取一个名字,可以代替ID

  2. -p 3306:3306: 前面为宿主机的端口,后面为容器的端口,如果不配置是访问不到容器内端口的。

  3. -v xxx : xxx 文件挂载,冒号之前的是宿主机上面的路径,冒号之后的是容器内部的路径。方便容器内外的文件交互

  4. -d :容器运行方式

    1. -d 后台运行

    2. -i 保持链接(不后台运行)

    3. -t 分配一个虚拟控制台 (it一般都是组合使用,保持链接并且分配一个控制台-it)

  5. --restart=always : 设置docker服务启动自动启动该容器

  6. -e 为容器中设置环境变量(这里MYSQL_ROOT_PASSWORD是容器内部自己用于设置root密码的环境变量)

  7. 最后为镜像名称加镜像版本

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的命令逻辑几乎一样,这里来对比一下不同的地方

  1. 多个-v : 如果需要挂载多个目录可以使用多个-v,同理如果需要添加多个端口可以使用多个-p, 添加多个环境变量使用多个-e

  2. 未使用-p映射端口:在安装nginx的时候使用了 --net host,这个作用是容器直接使用宿主机的网络和端口。

八、查看容器日志

1.查看容器完整日志(从最开始查看)

docker logs mysql

2.持续查看容器日志(从最开始持续查看)

docker logs -f mysql

注意: 持续查看加一个 -f 就行了

3. 查看最后100行日志

docker logs -f --tail=100 mysql

注意 查看最后多少行使用--tail=数量 来查看,tail可以和-f 结合使用,也能单独使用

九、查看所有容器的资源情况

docker stats

CONTAINER 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等使用情况。