Linux下docker
Table of Contents
docker-compose
# github $ sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 国内 $ curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose # 将可执行权限应用于二进制文件: $ sudo chmod +x /usr/local/bin/docker-compose # 创建软链: $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose # 测试是否安装成功: $ docker-compose version cker-compose version 1.24.1, build 4667896b
docker login
dk login -u yangk -p P@88w0rd harbor.devops.kubesphere.local:30280 dk login -u admin -p Harbor12345 harbor.devops.kubesphere.local:30280
docker push
dk tag mysql:5.7 harbor.devops.kubesphere.local:30280/library/mysql_57:5.7 dk push harbor.devops.kubesphere.local:30280/library/mysql_57:5.7
常用命令
help
$ docker -h $ docker commond -h
通过Dockfile构建docker镜像
$ docker build -t <镜像名> <Dockerfile路径> #通过Dockfile构建docker镜像 $ docker build -t xx/gitlab . #如Dockerfile在当前路径:
run
> docker run -it image_id bash
exec
> docker exec -it container_id bash
save && load && tag
dk save 03b5ab5bcd91 > ./tw_4.0.tar dk load < ./tw_4.0.tar or dk save 03b5ab5bcd91 -o ./tw_4.0.tar dk load -i ./tw_4.0.tar dk tag 03b5ab5bcd91 tw:4.0
后台运行(-d)、并暴露端口(-p)
- docker run -d -p 33301:22 centos6-ssh
- docker run -d -P centos6-ssh
- -p 小写p,指定loc端口映射到容器内端口
- -P 大学P,容器内端口自动映射到loc端口
- -d 后台运行
- -t 在新容器内指定一个伪终端或终端。
- -i 允许你对容器内的标准输入 (STDIN) 进行交互
从container中拷贝文件出来
- sudo docker cp 7bb0e258aefe:/etc/debian_version .
- 拷贝7bb0e258aefe中的/etc/debian_version到当前目录下。
注意:
- 只要7bb0e258aefe没有被删除,文件命名空间就还在,可以放心的把exit状态的container的文件拷贝出来
删除镜像报错(image has dependent child images)
踩坑
tw
- 构建
- hostname
- system_id
- sidekiq验证
- 容器启动退出
docker search 报错
Error response from daemon: Get https://index.docker.io/v1/search?q=mysql&n=25: Service Unavailable
解决办法:
harbor
- https,http
- harbor.devops.kubesphere.local:30280 必须固定,且配置hosts映射
- 账户push权限
- push之前必须打tag
docker –link
docker镜像加速
适用于:
Ubuntu 16.04+、Debian 8+、CentOS 7+
创建或修改 /etc/docker/daemon.json
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://1nj0zren.mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "http://f1361db2.m.daocloud.io", "https://registry.docker-cn.com" ] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
检查加速器是否生效
- 命令行执行 docker info,如果从结果中看到了如下内容,说明配置成功。
Registry Mirrors: [...] https://registry.docker-cn.com/
Docker Hub 镜像加速器列表
名称 | 地址 |
---|---|
Docker 中国官方镜像 | https://registry.docker-cn.com |
Azure 中国镜像 | https://dockerhub.azk8s.cn |
科大镜像站 | https://docker.mirrors.ustc.edu.cn |
七牛云 | https://reg-mirror.qiniu.com |
网易云 | https://hub-mirror.c.163.com |
腾讯云 | https://mirror.ccs.tencentyun.com |