记录使用docker过程中常用的命令
1. docker ps
# 查看容器
docker ps
# 查看包括已停止的容器
docker ps -a
2. docker search
# 搜索镜像
docker search nginx
3. 查看具体镜像的版本信息情况
https://hub.docker.com/ docker 官网,根据对应镜像名称搜索 进入镜像详情,tag 标签记录有镜像的版本信息
4. 拉取镜像
# 默认拉取最近版本的 nginx:latest
docker pull nginx
# 拉取具体版本信息的镜像
docker pull nginx:latest
5. docker 容器运行
docker run -it ubuntu /bin/bash
## 参数说明:
-i: 交互式操作。
-t: 终端。
ubuntu: ubuntu 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
## 要退出终端,直接输入 exit:
# 容器的后台运行
# 在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
# 注:加了 -d 参数默认不会进入容器
docker run -itd --name ubuntu-test ubuntu /bin/bash
6. 进入容器
## 在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
docker attach:如果从这个容器退出,会导致容器的停止
docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。
docker exec -it 243c32535da7 /bin/bash
7. docker 安装使用 mysql 等软件
# 简单使用docker使用 mysql、redis 等
# 拉取 镜像 按之前基础命令 操作即可
# mysql 运行容器
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.28
# 解释:
# -itd 这个 前面有介绍, 交互式终端后台启动
# --name 后接的是 容器名称
# -p 后面是 端口映射(可以主机上用 3306 端口访问 容器的3306 端口),容器内的3306 端口是 mysql 默认开发端口。这样就可以在 主机上 用 127.0.0.1:3306 访问 mysql 了
# -e mysql 启用这里是 设置 env(配置信息),这里我是 设置 mysql 的 root 访问密码,主机访问可以用 root 123456 密码访问
# 最后的 mysql:8.0.28 就是镜像了,此容器 运行那个镜像
之后 在次使用运行好的容器 用 docker start/stop 命令即可,日志查看 docker logs + 容器ID
8. docker 修改容器名称
# 将容器 mysql 名称 改成 mysql_stop
docker rename mysql mysql_stop
9. 生成新的镜像
# 生成新的镜像
docker commit -m="php add ext:pdo_mysql,mysqli,redis" -a="greenwaterbluesky" 04feb0b333b7 php7.2-fpm/ext:1.0.0
10. 仓库管理,登录自己的仓库
# 登录自己的仓库,执行命令后输入账号密码
docker login
# 登录成功结果如下:
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: greenwaterbluesky
Password:
WARNING! Your password will be stored unencrypted in /home/admin/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
# 推送镜像到自己的仓库,推送前现在 https://hub.docker.com 上创建个仓库看看,初次是需要验证邮箱的。验证完 后才能看到新推送上去的仓库
# 这里的 greenwaterbluesky 是 hub.docker.com 的账号名称
docker push greenwaterbluesky/php7.2-fpm:ext1.0.0
# 退出登录
docker logout
11. 查看新建 docker 网络
# 新建 docker 网络
docker network create -d bridge net-test
# 查看 docker 网络
docker network ls