Docker基础用法

docker-ce yum仓库

1
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装

1
yum install docker-ce docker-ce-cli containerd.io -y

基础命令

  • 查看镜像
    1
    docker images
  • 查看容器
    1
    docker ps -a
  • 拉取镜像
    1
    docker pull [镜像名]
  • 查看所有镜像
    1
    docker images -qa
  • 删除镜像
    1
    docker rmi [镜像名或镜像id]

设置docker镜像源

  • 编辑镜像源文件
    1
    vim /etc/docker/daemon.json
  • 阿里云镜像
    1
    2
    3
    {
    "registry-mirrors": ["https://v3u80yhi.mirror.aliyuncs.com"]
    }
  • 登录第三方源
    1
    docker login --username=aliyun7272234537 registry.cn-hangzhou.aliyuncs.com
  • 重启一下docker
    1
    2
    systemctl daemon-reload
    systemctl restart docker

镜像管理

  • 搜索
    1
    docker search [imagename]
  • 下载
    1
    docker pull [imagename]
  • 上传

    1
    docker push [imagename]
  • 保存成tar包

    1
    docker save [imagename]
  • 将本地的tar包中的镜像加载到本地
    1
    docker load [imagesname.tar]
  • 查询当前有哪些镜像

    1
    docker images
  • 删除镜像

    1
    docker rmi [imagename]

运行镜像

  • 我们使用下载好的nginx镜像进行运行
  • 运行镜像就会产生容器
    1
    docker run -d -p 8080:80 nginx
  • -d:放在后台运行
  • -p:指定端口映射
  • -name:指定容器的名字
  • -it:分配交互式的终端

容器的操作

  • 运行
    1
    docker start [容器名/Id]
  • 停止
    1
    docker stop [容器名/Id]
  • 显示所有容器的id
    1
    docker ps -a -l -q
    • -a:所有容器
    • -l:最后创建的容器
    • -q:静默输出
  • 删除容器
    1
    docker rm [容器id]
    • 删除所有
      1
      docker rm -f `docker ps -aq`

创建mysql和nginx进行尝试

  • 让容器开机自启

    1
    docker run -tid --name mysql1 --restart always mysql
  • 容器一直处于重启状态

  • 查看日志
    1
    docker log mysql1

🔴
日志说初始化失败,是因为没有传mysql的密码

  • 需要指定mysql密码
    1
    docker run -tid --name mysql1 --restart always -e MYSQL_ROOT_PASSWORD=lizhanqi0228 -p 3306:3306 mysql
  • 创建nginx
    1
    docker run -tid --name nginx1 --restart always -p 80:80 nginx

🔴
—restart always是为了容器在系统重启后开机自启动

更改docker镜像源

🟣
没有则创建

1
vim /etc/docker/daemon.json

🟣
添加以下内容

1
2
3
{
"registry-mirrors": ["https://docker.367231.xyz"]
}

重启服务

1
2
systemctl daemon-reload
systemctl restart docker

测试

  • 不写版本号就是拉取最新版
    1
    docker pull nginx