Docker 基础手册

一、linux安装Docker

1、卸载旧版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2、配置yum源

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3、安装Docker

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4、启动和校验

# 启动docker服务
systemctl start docker

# 停止docker服务
systemctl stop docker

# 重启docker服务
systemctl restart docker

# 设置开启启动
systemctl enable docker

# 查看docker进程 不报错说明安装成功
docker ps

#查看docker版本
docker -v

5、成功启动

[root@localhost yum.repos.d]# systemctl start docker
[root@localhost yum.repos.d]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

二、Docker部署mysql

1、docker安装mysql

docker run -d \ # 创建并运行一个镜像  -d 后台运行
--name mysql \  # 镜像的唯一名字
-p 3306:3306 \  # 端口映射 主机端口:镜像端口
-e TZ=Asia/Shanghai \  # 镜像指定环境变量
-e MYSQL_ROOT_PASSWORD=123 \  # 镜像指定环境变量
mysql # 指定运行的镜像 一般后面加上版本 mysql:5.7 没有加代表指定最新

2、连接测试

3、运行多个mysql

docker run -d \
--name mysql2 \
-p 3307:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
mysql
[root@localhost yum.repos.d]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
74716e67e1aa   mysql     "docker-entrypoint.s…"   8 seconds ago    Up 7 seconds    33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp   mysql2
85ab2b83c518   mysql     "docker-entrypoint.s…"   20 minutes ago   Up 20 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql

三、Docker 部署nginx

1、从镜像仓库拉去nginx镜像

#拉取镜像
docker pull nginx

#查看本地镜像
docker images
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        latest    56b21e040954   5 days ago     632MB
nginx        latest    a8758716bb6a   3 months ago   187MB

2、生成容器

[root@localhost ~]# docker run -d --name nginx -p 80:80 nginx:latest
b5983400e20f11ae9cba6630150faec29089d35072759772c8fdd2c14e6e7913

3、查看运行中的容器

[root@localhost ~]#  docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS              PORTS                                                  NAMES
b5983400e20f   nginx:latest   "/docker-entrypoint.…"   About a minute ago   Up About a minute   0.0.0.0:80->80/tcp, :::80->80/tcp                      nginx

4、查看首页

四、Docker常见命令

1、镜像相关命令

# 从镜像仓库拉取到本地镜像
docker pull

# 将本地镜像推到镜像仓库中
docker push

# 查看本地镜像
docker images

# 删除本地镜像
docker rmi
例1:docker rmi nginx:latest

# 构建自定义镜像
docker build

# 将本地镜像打包
docker save -o '包名.tar' '镜像名字':'版本'
例1:docker save -o ./nginx.tar nginx:latest

# 将打包的镜像加入到本地镜像
docker load
例1:docker load -i ./nginx.tar

2、容器相关命令

# 创建并运行容器
docker run
例1:docker run -d --name nginx -p 80:80 nginx:latest
-d 后台运行

# 停止容器运行
docker stop

# 运行容器
docker start

# 查看运行中的容器
docker ps
-a #查看所有容器包括已经创建的关闭的

# 删除容器
docker rm
-f 强制删除

# 查看容器日志
docker logs
-f 持续查看日志

# 进入容器内部运行命令
docker exec
docker exec -it nginx bash

# 查看容器的详细信息
docker inspect nginx


五、数据卷

数据卷是一个虚拟目录 用来连接docker容器内的目录和外部目录的桥梁

# 创建数据卷
docker volume create

# 查看所有数据卷
docker volume ls

# 删除指定数据卷
docker volume rm

# 查看某个数据卷详情
docker volume inspect

# 清楚数据卷
docker volume prune

1、挂载数据卷

挂载数据卷只能在创建容器的时候挂载,所以使用·docker run·命令,这里挂载nginx的静态目录

[root@localhost ~]# docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx:latest
b0551d942db56cc58687123c6136a16d777325975e8098b4db1a25507e8d6039
[root@localhost ~]# docker volume ls
DRIVER    VOLUME NAME
local     89ac97fada9ab5d4692a08d7c1a39a0dfb119f12822616882bcb52606aab65a0
local     26183b839d834912d0568ec1fd34f9465a02ac97e81c71fe78df3436c6b7c428
local     html
[root@localhost ~]# docker volume inspect html 
[
    {
        "CreatedAt": "2024-01-24T15:47:26+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/html/_data",
        "Name": "html",
        "Options": null,
        "Scope": "local"
    }
]

查看挂载的目录

[root@localhost ~]# cd /var/lib/docker/volumes/html/_data
[root@localhost _data]# ll
total 8
-rw-r--r--. 1 root root 497 Oct 24 21:46 50x.html
-rw-r--r--. 1 root root 615 Oct 24 21:46 index.html

2、本地目录挂载

本地关在和挂载数据卷差不多只是本地目录的路径要写绝对路径

docker run -d --name nginx -p 80:80 -v /html:/usr/share/nginx/html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值