惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
博客园 - 司徒正美
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
爱范儿
爱范儿
月光博客
月光博客
The GitHub Blog
The GitHub Blog
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog
T
Tailwind CSS Blog
美团技术团队
D
Docker
V
Visual Studio Blog
Martin Fowler
Martin Fowler
博客园 - 聂微东
The Cloudflare Blog

jdhao's digital space

Conversion between base64 and OpenCV or PIL Image 腾讯云对象存储博客图床开启 CDN 加速(不需要购买额外域名) Search and Replace in Multiple Files in Vim/Neovim Change Table Column Width in LaTeX Image or Table Side by Side in LaTeX LaTeX 并排显示图像或表格 Firenvim: Neovim inside Your Browser Content inside HTML tags missing in Latest Hugo? Creating Markdown Front Matter with Ultisnips Labelme JSON 标注格式转 voc XML 格式 Nifty Nvim Techniques That Make My Life Easier -- Series 6 macOS 下如何为视频制作字幕 Running Command Asynchronously inside Neovim Resolving Merge Conflict after Git Stash Pop Pylint: command not found? A Hands-on Experience with Neovim's Built-in LSP Support How to Convert PDF to Images with Imagemagick 互联网上常用缩略语集锦 File Backup in Neovim Converting PDF Pages to Images with Poppler Nifty Nvim Techniques That Make My Life Easier -- Series 5 Neovim Configuration for System-wide Use How to sort a list of tuple or list in Python -- lambda or itemgetter? Building A Vim Statusline from Scratch 人类第一颗原子弹爆炸始末 Distributed Training in PyTorch with Horovod Learning Expect Programming Essential Knowledge about SSH Nifty LaTeX Techniques -- Series 1 更改 Adsense 邮寄地址,重新寄送 PIN
Notes on Docker -- s3
2021-03-25 · via jdhao's digital space

Personal notes on docker usage.

docker: permission denied when pushing#

When I run the docker command, I got the following error:

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http:///var%/run/docker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.See ‘docker run –help’.

This is because docker normally requires root right to run. We can create a docker group and add current user to this group:

sudo groupadd docker
sudo usermod -aG docker $USER

Restart to make the change take effect. Now we should be able to run docker command without errors.

Ref:

How do I push a container to another remote repo#

Suppose we have a local container and we want to push it to another remote repository, how do we do it?

First, we need to tag it:

docker tag IMAGE:[tag] remote_repo_address/user/name:tag

Instead of using names, you can also use CONTAINER ID or NAMES in the output docker ps. The all refer to the same container.

Then we can push to the remote repo:

docker push remote_repo_address/user/name:tag

Ref:

how to map multiple ports#

In using docker, we can use -p <host_port>:<container_port> to expose container port to host port. If we need to expose multiple ports, we simply need to use multiple -p followed by port mappings.

docker run -it -p <host_port1>:<container_port1> -p <host_port2>:<container_port2>

Ref:

Docker logging file#

By default, docker will record the output to stdout and stderr in a container. The log file is stored on the host machine. The log file location for a container is:

/var/lib/docker/containers/<container-id>/<container-id>-json.log

or you can directory find the log location for a container using the following command:

docker inspect <container-id> |grep LogPath

Each line in the log file is in JSON format, recording the log message, stream, and time, like this:

{"log":"echo test\r\n","stream":"stdout","time":"2021-03-23T06:32:05.401925782Z"}

Note that the time shown above is neither the time on your host machine nor your container. Based on issue here and post here, it seems that docker is using UTC time zone. So the time shown in the log file may not be the time on your host machine or docker container.

To show the incoming logs in a container, use docker logs -f <container-id> (like what tail -f does).

Ref

name or rename a docker container#

By default, when we use docker run to start a container, docker will use a random name for this container. We can also use a custom name by using the --name option:

docker run -it --name my_service ...

We can also rename a running container:

# rename container with the name foo to bar
docker rename foo bar

Ref:

Add zsh completion for docker command#

Adding subcommand and option completion for docker command would be very helpful. Here is how to do it with the help of zinit.

# use docker completion script provided by Oh-my-zsh: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/docker
zinit ice as"completion"
zinit snippet OMZ::plugins/docker/_docker

autoload -Uz compinit  && compinit -i