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

推荐订阅源

月光博客
月光博客
C
Check Point Blog
J
Java Code Geeks
腾讯CDC
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
量子位
Google DeepMind News
Google DeepMind News
I
InfoQ
The GitHub Blog
The GitHub Blog
aimingoo的专栏
aimingoo的专栏
N
Netflix TechBlog - Medium
Hugging Face - Blog
Hugging Face - Blog
博客园 - Franky
V
V2EX
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
小众软件
小众软件
博客园_首页
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
IT之家
IT之家

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