0%

docker基本操作(一)

本文作为docker使用笔记供小伙伴们参考

准备工作

安装最新版的docker-ce,会将自动命令行补齐安装在/usr/share/bash-completion/completions/docker目录

为了方便操作,在ubuntu上打开docker命令行自动补齐功能

编辑/etc/bash.bashrc文件,查找completion段,将该段内容前的#删除即可

1
2
3
4
5
6
7
8
# enable bash completion in interactive shells
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi

image操作

  • build image
1
$ docker build -t mytest:latest .
  • 查看image
1
2
3
4
5
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx <none> 73acd1f0cfad 8 days ago 109MB
mongo 3 5b1317f8158f 8 days ago 366MB
$ dockeer image ls
  • 删除image
1
2
$ docker image rm <id/name>
$ docker rmi <id/name>

从docker hub上获取image

国内访问docker hub较慢,可使用阿里云的docker镜像服务

1
$ docker pull nginx

continer相关

创建docker

1
$ docker run -d --name mytest -p 80:80 mynginx

常用参数说明

–rm 当运行结束(当CMD或entrypoint或docker run命令行指定的命令运行结束时,容器停止)时自动删除docker

-it 重定向docker终端

-d 在后台执行

-e 添加运行时的参数,常被用于docker CMD执行时增加参数

docker支持长id和短id方式索引,亦可通过名称进行索引

  • stop/start/restart容器
  1. 通过docker stop可以停止运行的容器,也可以使用docker kill来快速停止一个容器
  2. docker start会保留容器的第一次启动时的所有参数
  3. docker restart可以重启容器
  4. 可以在启动容器时设置–restart来自动重启容器
  • 删除容器
  1. 可以使用docker ps列出当前正在运行的容器
  2. 容器停止运行不代表容器已经被删除,可以使用docker ps -a
  3. 使用docker rm来删除一个容器
  4. 使用docker rmi则会删除docker的image

查看及操作

  • 查看容器状态
1
2
3
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
30c8e35f1292 portainer/portainer "/portainer" 10 days ago Up 2 days 0.0.0.0:9000->9000/tcp clever_murdock

使用docker ps -a查看所有容器(包含休眠状态)

1
2
3
4
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
30c8e35f1292 portainer/portainer "/portainer" 10 days ago Up 2 days 0.0.0.0:9000->9000/tcp clever_murdock
ef58155f9957 registry:2 "/entrypoint.sh /etc…" 2 days ago Exited (137) 41 hours ago sltregistry
  • 连接到容器的终端

尽量使用exec方法,attach连入后可查看当前容器命令运行的日志,但不当的操作容易使运行中的容器退出

  1. 使用attach
1
$ docker attach <id/name>
  1. 使用exec
1
$ docker exec -it <id/name> /bin/sh
  • 查看容器运行的日志

容器以-d参数运行时,可以使用docker logs查看运行过程中的日志

1
2
3
$ docker logs mytest_haproxy
[WARNING] 079/100555 (1) : [haproxy.main()] Cannot raise FD limit to 200000011, limit is 1048576.
[WARNING] 079/100555 (1) : [haproxy.main()] FD limit (1048576) too low for maxconn=100000000/maxsock=200000011. Please raise 'ulimit-n' to 200000011 or more to avoid any trouble.