1.基础知识
- 容器之间相互隔离,类似于沙盒机制
1.镜像分类
中间层镜像:镜像之间可以复用的部分
1
docker image ls -a//查看所有
虚悬镜像:当镜像打补丁时,再次pull或者build时,新镜像就会替换旧的镜像名,旧镜像名称就会变成<none>;
1
docker image prune//删除
2.待补充
2.Docker操作
1.安装docker
官方安装文档,官方文档建议使用yum安装,推荐使用docker社区版本
卸载旧版本:安装过旧版本的执行
1
2
3
4
5
6
7
8sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine安装依赖包
1
2
3sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2设置源
/etc/yum.repos.d/下查看
1
2
3sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo安装docker
最新版
1
sudo yum install -y docker-ce docker-ce-cli containerd.io
安装特定版本查看版本
1
yum list docker-ce --showduplicates | sort -r
安装特定版本
1
sudo yum install docker-ce-版本号 docker-ce-cli-版本号 containerd.io
2.配置docker源
配置docker源
[见文档另一种方法和出现冲突处理]新建/etc/docker/daemon.json,配置腾讯云docker加速源
1
2
3{
"registry-mirrors":["https://mirror.ccs.tencentyun.com"]
}重启服务
1
systemctl restart docker-ce
2.卸载Docker
删除docker包
1
yum remove docker-ce
删除docker目录
1
rm -rf /var/lib/docker
3.Docker命令
容器=资源+镜像;镜像:原始包
1.镜像
下载镜像
1
docker pull [作者名/]镜像名[:版本]
查看所有镜像
1
docker image ls
1
docker images
查看镜像层数
1
docker history tomcat[:版本]
查看镜像详情
1
docker inspcet tomcat
删除镜像/容器
1
docker image rm tomcat
1
docker rmi tomcat
删除虚悬镜像
1
docker image prune
导出镜像
1
docker [image] save tomcat > tomcat.tar
导入镜像
1
docker [image] load < tomcat.tar
2.容器
创建容器
基础命令
1
docker [container] run -参数
参数
run的参数
参数 作用 -i 交互式 -t 伪终端 -d 后台运行 –name 设置容器名 –rm 退出时删除容器 -p 8080:8080 指定端口号 1:主机端口号;2:容器端口号 -v 主机目录:容器目录 数据卷 一般使用
1
docker [container] run -itd --name 名字 镜像名
导入导出容器
查看正在运行的容器
显示:容器id、镜像名、COMMAND 、创建时间 、 STATUS 、端口号/协议、容器名
1
docker ps
导出容器[可导出运行]
1
docker [image] export 容器id/容器名 镜像名.tar
导入容器[可指定名称]
1
docker [image] import 镜像名.tar [重命名:建议原名称]
打标记
用之前的镜像创建有个标记不同的镜像
1
docker [image] tag tomcat:1 tomcat:标记
进入关闭容器
exit(ctrl+z):关闭容器,ctrl+p+q正常退出
1
docker [container] attach 容器名/id
启动容器
1
docker [container] start 容器名
关闭容器
1
docker [container] stop 容器名
删除容器
1
docker [cintainer] rm 容器名
删除停止状态的容器
1
docker container prune 容器名/id
进入容器
1
docker exec -it 容器名[/容器id bash]
构建镜像
1
docker build -t 容器名 /dockefile所在目录
3.部署容器
1.mysql
下载mysql镜像
1
docker pull mysql:5.7.24
创建容器
-v /usr/local/docker/mysql/conf:/etc/mysql \
1
2
3
4
5docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=mysqlYANGTUO2019 \
-d mysql:5.7.24
4.DockerFile
- 开头必须是FROM 镜像名
- WORKDIR:设置工作目录
- RUN + shell脚本
- copy:复制
5.Docker-Compose
用于批处理run容器
1.安装
下载Compose
或者直接下载上传到/uer/local/bin/docker-compose
1
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
增加可执行权限
1
sudo chmod +x /usr/local/bin/docker-compose
2.命令
启动
1
docker-compose up
3.yml配置文件
docker-compose.yml
3级别的可以单独写在1级别上,用于重命名
名称 | 作用 | 级别 | 注意事项 |
---|---|---|---|
version | docker-compose.yml版本号 | 1 | 3,兼容之前版本 |
services | 配置多个容器 | 1 | |
自定义服务名 | 2 | 无名称可以自己起 | |
image | 指定镜像 | 3 | |
restart | 开机是否启动 | 3 | always:总是启动/no:不启动 |
container_name | 容器名 | 3 | |
ports | 端口映射 | 3 | |
volumes | 数据卷 | 3 | |
environment | 环境变量 | 3 | 查看hub文档有相关说明 |
command | 初始化 | 3 | – |
4.部署容器
1.gitLab
相关资料
这里下载的是gitLab的汉化版,并非官方版,在dockerHub上搜索gitlab-ce-zh搜索选择汉化版本;
gitlab硬件要求:当前建议8G+7200转机械硬盘或固态硬盘,否则启动和运行都很不理想
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19version: '3'
services:
web:
image: 'twang2218/gitlab-ce-zh'
restart: unless-stopped
hostname: 'www.airbash.cn'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://www.airbash.cn/gitlab'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
ports:
- '8080:80'
- '8443:443'
- '2222:22'
volumes:
- /usr/local/docker/gitlab/config:/etc/gitlab
- /usr/local/docker/gitlab/data:/var/opt/gitlab
- /usr/local/docker/gitlab/logs:/var/log/gitlab
最后更新: 2019年11月06日 11:36
原始链接: https://airbash.cn/2017/08/02/%E8%BF%90%E7%BB%B4/docker/