Docker
环境搭建
- 官方脚本一键安装 :
curl -fsSL https://test.docker.com -o test-docker.sh sudo sh test-docker.sh
- 手动安装:
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
- 启动docker:systemctl start docker.service
- 查看版本号 :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"]