Docker

环境搭建

  1. 官方脚本一键安装 :
     curl -fsSL https://test.docker.com -o test-docker.sh
     sudo sh test-docker.sh
    
  2. 手动安装:
    sudo apt-get install ca-certificates curl gnupg lsb-release
    # 安装证书
    curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    # 写入源
    sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    # 安装
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    # 安装工具
    apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    
    
  3. 启动docker:systemctl start docker.service
  4. 查看版本号 :docker version

权限问题

默认其他用户是没有docker命令权限的,需要加sudo才可以,下面就是为了解决这个问题

sudo gpasswd -a $XXX docker # 将这个 $XXX用户添加进docker用户组
newgrp docker #更新docker用户组
id  $XXX             #查看组

常用命令

镜像相关命令

  • 查找镜像:docker search 镜像名称 (从云端查询镜像)
  • 拖取镜像:docker pull 名称:tag(从云端拉取到本地)
  • 查看镜像:docker images (查看本机已有镜像列表)
  • 删除镜像:docker image rm 镜像名称:tag
  • 导出镜像:docker save -o 导出后的名称 镜像名称:tag
     docker save -o redis.tar redis:latest
    
  • 导入镜像:docker load -i 导出后的包
    docker load -i redis.tar
    
  • 给镜像打标签:docker tag 镜像名称:tag 改后的名称:tag
    docker tag redis:latest myRedis:latest
    
  • 上传镜像:docker push 镜像名称:tag
  • 镜像运行:docker run 镜像名称 (镜像启动后就成了容器,参数太多不列举,举几个例子)
    // jenkins启动 -d 代表后台运行  --name 启动后的容器名称  -p 端口映射 -v 文件映射挂载  最后是镜像名称:tag
    docker run -d --name jenkins -p 28090:8080 -p 50010:50000 -v /var/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime jenkins/jenkins:lts
    // mysql启动 -d 代表后台运行  --name 启动后的容器名称  -p 端口映射 -e 运行设置参数  最后是镜像名称:tag
    docker run -p 3306:3306 -d --name mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
    
    

容器相关命令

  • 查看当前启动容器:docker ps
  • 查看所有容器:docker ps -a
  • 启动容器:docker start 容器名称 或者ID
  • 删除容器:docker rm 容器id
  • 停止容器:docker stop 容器名称 或者ID
  • 删除容器:docker rm 容器id
  • 重启容器:docker restart 容器名称
  • 进入容器: docker exec -it 容器名称 bash (进入不是root用户,还不知道密码)
    docker exec -it --user root 容器名称 bash //以root用户进入
    passwd root //进入后可修改密码
    
  • 导出容器:docker export 容器名称或ID > 导出后的文件名
  • 导入容器成镜像:cat 导出后的文件名 | docker import - 新的镜像名称:tag
  • 查看容器日志:docker logs 容器

dockerfile

官方实例

FROM openjdk:8
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
Last Updated: