docker-常规命令

  1. Docker镜像的基础操作
    1. 从github拉取镜像
    2. 列出本地镜像
    3. 删除本地镜像
  2. 使用dockerfile构建自己的镜像
    1. 创建一个空白的目录并进入
    2. 编辑dockerfile文件
    3. 构建镜像
    4. 查看构建成功的images
    5. 运行新构建的images
  3. docker 容器的基础操作Containers
    1. 初次启动
    2. 修改重启配置
    3. 启动己停止的docker容器
    4. 查看正在运行的docker容器
    5. 列出所有容器ID
      1. 查看所有的停止或正在运行的容器
      2. 停止docker容器
      3. 查看docker容器运行的日志
      4. 删除己停止的docker容器
      5. 登录容器
  4. Docker仓库
    1. 公有仓库
      1. 搜索镜像
      2. 拉取镜像
      3. 查看公有仓库
      4. 推送镜像到共有仓库
      5. 上传镜像到docker官方镜像库
      6. 查看是否上传成功
    2. 私有仓库
      1. 安装私有仓库
      2. 上传镜像到私有仓库
      3. 标记镜像到私有仓库
      4. 上传镜像到私有仓库
      5. 查看是否己上传
      6. 删除本地镜像
      7. 从本地仓库下载镜像
  5. docker 数据管理
    1. 数据卷
      1. 创建数据卷
      2. 查看所有数据卷
      3. 查看数据卷的详细信息
    2. 挂载主机目录
      1. 挂载主机目录
  6. docker 网络
    1. 基础网络配置
      1. 查看端口信息
    2. 多个docker之间网络通信
      1. 创建一个自己的虚拟网桥
      2. 创建两个链接到新网桥的两个容器
  7. docker-compose
    1. docker compose 安装
      1. 安装epl软件源
      2. 安装python-pip
      3. 安装docker compose
      4. 查看版本
    2. docker compose 项目构建
      1. 通过docker compose file 构建 wordpress 应用
      2. 编写 wordpress docker compose file文件
      3. 新建目录并过入
      4. 新建wordpress docker compose file文件
      5. 项目构建
    3. docker常见端口

Docker镜像的基础操作

从github拉取镜像

命令格式:
docker pull [选项] [Docker Registry 地址[:端口号/] 仓库名[:标签]

1
docker pull ubuntu

列出本地镜像

1
docker image ls

删除本地镜像

1
docker image rm -f image_id

使用dockerfile构建自己的镜像

创建一个空白的目录并进入

1
mkdir first && cd first

编辑dockerfile文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 基础镜像来自于 hub.docker.com
FROM centos
# 镜像维护信息 https://xiaopangsoftware.taobao.com
MAINTAINER xiaopangsoftware.taobao.com

# 指定工作目录
WORKDIR /app

# 将项目相关文件拷贝到app下,如果目录不存在会自动创建
COPY index.js /app
COPY package.js /app

# 安装命令来自于 node.js 官网 https://nodejs.org/en/downlaod/package-manager/#enterprise-linux-and-fedora
RUN curl --silent --location https://rpm.nodesource.com/setup_10.x bash - && yum -y install nodejs && npm install

# 暴露端口
EXPOSE 8080

#容器启动命令
CMD["node","/app/index.js"]

构建镜像

1
docker build -t xiaopang/centos-nodejs:1.0

** -t 你的名字/镜像的名字

查看构建成功的images

1
docker images

运行新构建的images

1
docker run -p 8080:8080 -d centos-nodejs:1.0

docker 容器的基础操作Containers

初次启动

1
docker run -p 8080:8080 -d centos-nodejs:1.0

说明:通过docker run 运行 首先从本地查询是否有这个镜像,无 则先下载后启动

修改重启配置

1
docker container update --restart=always <containername>

启动己停止的docker容器

1
2
3
docker start id

docker container restart gitlab-codes

查看正在运行的docker容器

1
docker ps

列出所有容器ID

1
docker ps -aq

查看所有的停止或正在运行的容器

1
docker ps -a

停止docker容器

1
docker stop id 

查看docker容器运行的日志

1
docker logs -f id

删除己停止的docker容器

1
docker rm id

登录容器

1
docker exec -it id bash

Docker仓库

公有仓库

搜索镜像
1
docker search centos
拉取镜像
1
docker pull centos
查看公有仓库
1
docker login
推送镜像到共有仓库
1
2
1、打标签
docker tag centos-nodejs:1.0 xiaohai0407/centos-nodejs:1.0
上传镜像到docker官方镜像库
1
docker push xiaohai0407/centos-nodejs:1.0
查看是否上传成功
1
docker search xiaohai0407

私有仓库

安装私有仓库
1
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
上传镜像到私有仓库
标记镜像到私有仓库
1
docker tag centos-nodejs:1.0

127.0.0.1:5000/centos-nodejs:1.0

上传镜像到私有仓库
1
docker push 127.0.0.1:5000/centos-nodejs:1.0
查看是否己上传
1
curl 127.0.0.1:5000/v2/_catalog
删除本地镜像
1
docker image rm 127.0.0.1:5000/centos-nodejs:1.0
从本地仓库下载镜像
1
docker pull 127.0.0.1:5000/centos-nodejs:1.0

docker 数据管理

数据卷

创建数据卷

1
docker volume create my-vol

查看所有数据卷

1
docker volume ls

查看数据卷的详细信息

docker volume inspect my-vol

挂载主机目录

挂载主机目录

1
2
3
4
5
# 1
docker rumn -p 8080:8080 -d --mount source=my-vol,target=/webapp centos-nodejs:1.0
# 2、指定目录挂载
docker rumn -p 8080:8080 -d --mount type=bind,source=/root/first,target=/webapp centos-nodejs:1.0

docker 网络

基础网络配置

1
2
外部访问容器 -P:随机端口  -p:指定端口
docker rum -p 8080:8080 -d centos-nodejs:1.0

-p 127.0.0.1:8080:8080 只有本机可以访问
-p 127.0.0.1::8080 本机的任意端口

查看端口信息

1
docker port id 8080

多个docker之间网络通信

创建一个自己的虚拟网桥

1
docker network create -d bridge my-bridge

创建两个链接到新网桥的两个容器

1
2
3
4
docker rum -it --name test5 --network my-bridge centos
docker rum -it --name test6 --network my-bridge centos

yum install -y iproute

docker-compose

docker compose 安装

安装epl软件源

1
yum install -y epel-release

安装python-pip

1
yum install -y python-pip

安装docker compose

1
pip install docker-compose

查看版本

1
docker-compose version

docker compose 项目构建

通过docker compose file 构建 wordpress 应用

编写 wordpress docker compose file文件

新建目录并过入

1
mkdir wordpress && cd wordpress

新建wordpress docker compose file文件

Version 参考

https://docs.docker.com/compose/compose-file/compose-file-v3/

image-20210821205103138

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version:"3"
services:

db:
image:mysql:latest
voloumes:
-db_data:/var/lib/mysql
restart:always
environment:
MYSQL_ROOT_PASSWORD:somewordpress
MYSQL_DATABASE:wordpress
MYSQL_USER:wordpress
MYSQL_PASSWORD:wordpress
wordpress:
depends_on:
-db
image:wordpress:latest
ports:
-"80:80"
restart:always
environment:
WORDPRESS_DB_HOST:db:3306
WORDPRESS_DB_USER:wordpress
WORDPRESS_DB_PASSWORD:wordpress
volumes:
db_data:

项目构建

1
docker-compose up -d
1
2
3
4
5
6
7
8
docker-compose images
docker-compose ps
docker-compose stop
docker-compose rm
docker-compose start
docker-compose scale wordpress =3 db=2
docker-compose port wordpress 80
docker-compose logs -f wordpress

docker常见端口

2375:未加密的docker socket,远程无密码访问主机

2376:tls加密套接字,

2377:集群模式套接字,适用于群集管理器,不适用于docker客户端

5000:docker注册服务

4789 和 7946:覆盖网络

1
2
3
4
5
# 启动所有容器
docker start $(docker ps -a -q)

# 关闭所有容器
docker stop $(docker ps -a -q)

docker操作所有容器

1、启动所有容器

1
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)

2、关闭所有容器

1
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)

3、删除所有容器

1
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)

或者尝试:
docker start $(docker ps -a -q)
-a标志列出所有容器,-q标志只列出容器的ID,然后传递给rm命令,依次删除容器

4、删除所有镜像

1
docker rmi $(docker images | awk '{print $3}' |tail -n +2)

转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以邮件至 xiyugee@qq.com