Linux下docker

Table of Contents

docker安装

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

Dockfile

常用命令

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镜像加速


适用于:
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 镜像加速器列表

延伸阅读

Date: 2019-07-26 Fri 08:17