docker使用笔记

docker使用笔记

docker 安装(ubuntu)

官方文档:(直接去官网,网上的都不要信)
https://docs.docker.com/engine/install/ubuntu/

$ sudo apt-get remove docker docker-engine docker.io containerd runc
$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
$  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

docker安装(centos)

 $ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

docker安装(Kylin V10)

需要加上


 $ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

docker-compose安装

官方文档:
https://docs.docker.com/compose/install/

下面是官方文档的安装方式,注意此处版本“1.29.2”不一定是最新的,最高到官网上找最新版本。

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

docker.service 配置文件

官方说明:
https://docs.docker.com/engine/reference/commandline/dockerd/

/etc/docker/daemon.json 配置文件

{
    "dns": ["192.168.1.254"],
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"],
    "insecure-registries": ["110.110.110.110:1234"]
}

使用国内镜像仓库配置:在registry-mirrors配置镜像仓库地址
登录自己的镜像仓库(非STL/SSL):需要配置insecur-registries添加上ip和端口

insecure-registries: it replaces the daemon insecure registries with a
new set of insecure registries. If some existing insecure registries
in daemon’s configuration are not in newly reloaded insecure
registries, these existing ones will be removed from daemon’s config.
registry-mirrors: it replaces the daemon registry mirrors with a new
set of registry mirrors. If some existing registry mirrors in daemon’s
configuration are not in newly reloaded registry mirrors, these
existing ones will be removed from daemon’s config.

重启docker服务:
systemctl restart docker

docker login 错误

ubuntu 18.04上执行 docker login 登录镜像仓库的时候,抛出如下异常:
Remote error from secret service: org.freedesktop.DBus.Error.UnknownMethod: No such interface ‘org.freedesktop.Secret.Collection’ on object at path /org/freedesktop/secrets/collection/login
Error saving credentials: error storing credentials - err: exit status 1, out: No such interface 'org.freedesktop.Secret.Collection' on object at path /org/freedesktop/secrets/collection/login

产生原因:apt包管理器安装docker-compose时装上的golang-docker-credential-hepers造成的错误。

解决办法:apt purge golang-docker-credential-helpers

docker命令

官方文档:
https://docs.docker.com/engine/reference/commandline/docker/

基础用法

拉取镜像:docker pull <镜像名>[:<版本>]
查看镜像:docker images
保存镜像:docker save -o <文件名>.tar <镜像名/镜像ID>
加载镜像:docker load <镜像文件>
删除镜像:docker rmi <镜像名/镜像ID>

运行容器:docker run <镜像名>[:<版本>]
查看容器:docker ps
停止容器:docker stop <容器ID>
重启容器:docker retart <容器ID>
删除容器:docker rm <容器ID>

进阶用法

进入容器:
docker exec -it <容器ID> /bin/bash
运行同时进入容器:
docker run -it alpine /bin/sh
docker run --rm -it --name gb_test test/test:0.1 /bin/bash 结束时自动删除容器

持续运行容器
执行个不会停止的命令
docker run -d alpine tail -f /dev/null
执行个不会停止的脚本
docker run -d alpine /bin/sh -c "while true; do sleep 1; done"
执行个不会停止的脚本(加输出)
docker run -d alpine /bin/sh -c "while true; do sleep 1;echo hello-world; done"

停用所有容器
docker stop $(docker ps -q)
删除所有容器(慎用)
docker rm $(docker ps -aq)
停用并删除所有容器(更慎用)
docker stop $(docker ps -q) & docker rm $(docker ps -aq)

删除幽灵镜像(dangling)
docker rmi $(docker images -f "dangling=true" -q)

顶级用法

预留(等我玩明白了再写)

Dockerfile语法

官方文档:
https://docs.docker.com/engine/reference/builder/

CMD 与 ENTRYPOINT

CMD方式一

没有中括号的情况下,相当于在shell环境下运行程序。
CMD echo "Hello World!"
如果存在ENTRYPOINT, CMD将被覆盖

CMD方式二

没有ENTRYPOINT情况下CMD带中括号时,不是在shell环境下运行。
CMD ["/bin/bash", "-c", "echo 'Hello World!'"]

CMD方式三

在有ENTRYPOINT情况下CMD带中括号时,表示ENTRYPOINT的参数列表
ENTRYPOINT ["/bin/bash", "-c"]
CMD ["echo 'Hello World!'"]

ENTRYPOINT方式一

没有中括号的情况下,相当于在shell环境下运行程序。
ENTRYPOINT echo "Hello World!"

ENTRYPOINT方式二

有中括号情况下,不是在shell环境下运行。
ENTRYPOINT ["/bin/bash", "-c", "echo 'Hello World!'"]

FROM 基础镜像

docker-compose命令

官方文档:
https://docs.docker.com/compose/reference/

基础用法:
dcoekr-compose up -d [SERVICE…] 构建服务(重新)创建,启动(挂后台)
docker-compose down 停止所有容器并删除

docker-compose start [服务名称] 启动现有容器
docker-compose stop [服务名称] 停止容器不删除
docker-compose restart [服务名称] 重启容器

docker-compose ps 查看所有服务的运行情况
docker-compose images 查看所有服务的镜像信息

docker-compose.yaml语法

官方文档:
https://docs.docker.com/compose/compose-file/compose-file-v3/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值