学习笔记(10):Docker学习

Docker 小记 — Docker Engine

前言

用了 Docker 方才觉得生产环境终于有了他该有的样子,就像集装箱普及之后大型货轮的价值才逐渐体现出来,Docker 详细说明可查阅“官方文档”。本篇为 Docker Engine 的笔记,也就是我们通常说的 Docker,他包含了提供容器技术实现的 Docker daemon 及终端控制 Docker CLI 的应用程序。后续会继续发布 Docker Compose 和 Docker Swarm 的操作笔记,由于我的绝大部分应用案例都是云服务器,因此 Docker Machine 就略过了。
学习笔记(10):Docker学习_第1张图片

1. Docker 安装 & 配置镜像加速器

a:

# step 1:安装必要的一些系统工具
apt update
apt -y install apt-transport-https ca-certificates curl software-properties-common

# step 2:安装 GPG 证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -

# Step 3:写入软件源信息
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# Step 4:更新并安装 Docker-CE
apt -y update
apt -y install docker-ce

b:

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://jrzzvzok.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

2.Docker 命令详解

为了避免喧宾夺主,此处仅摘录我个人操作中较为常用的命令。

2.1 生命周期管理

run: 创建并运行容器,格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG…],参数说明:

-d , --detach            # 后台运行
-it, --interactive tty   # 交互终端形式运行
-p , --publish list      # 指定端口
-v , --volume list       # 挂载存储卷
		 --name string       # 定义名字
		 --rm                # 容器终止后自动删除(不支持在后台运行的容器)
		 --restart string    # no、on-failure(非正常退出时重启,on-failure:3 最多重启三次)、always、unless-stopped

docker run 的参数甚多,可通过 --help 查询,后续这些复杂的配置都会移交给 Docker Compose,以上几个足以应用70%~80%的场景,例:

# 类似 ubuntu 这类容器必须以 -it 交互终端形式运行,否则无法在后台保留
docker run -it -d --name my-ubuntu ubuntu
# 端口映射和挂载数据卷
docker run -d \
-p 8080:80 \
-v /data/www:/usr/share/nginx/html\
--name my-nginx nginx
# 端口映射和挂载数据卷
docker run -d \
-p 8080:80 \
-v /data/www:/usr/share/nginx/html\
--name my-nginx nginx

  • start/stop/restart: docker start/stop/restart my-container。
  • rm: 移除容器,格式:docker rm [OPTIONS] CONTAINER [CONTAINER…],参数说明:
-f, --force     Force the removal of a running container
-l, --link      Remove the specified link
-v, --volumes   Remove the volumes associated with the container

  • exec: 在运行的容器中执行命令,不过更常用的还是先进入容器再执行命令,例子:docker exec -it my-nginx bash。

2.2 容器操作

  • ps: 列出容器,常用:docker ps -anq,参数说明:all、n last(最新 n 个容器)、quiet(只显示容器编号)。
  • top: 查看容器中的进程信息,例:docker top my-container。
  • logs: 查看容器日志,常用:docker logs -f --tail,参数说明:follow、–tail n(最新条日志)。
  • port: 查看端口映射情况,例:docker port my-container。

2.3 镜像仓库

  • login/logout: 镜像仓库的登录和退出,格式:
在这里插入代码片docker login [OPTIONS] [SERVER]
docker logout  [SERVER]
  • pull: 拉取镜像,最常用的命令之一,格式:docker pull [OPTIONS] NAME[:TAG|@DIGEST]。
  • push: 上传镜像,格式:docker push [OPTIONS] NAME[:TAG]。

2.4 本地镜像管理

  • images: 列出本地镜像,常用 docker images -q,参数说明:quiet(只显示image Id)。
  • rmi: 删除本地镜像,常用 docker rmi -f,参数说明:force。
  • tag: 标记镜像,归入仓库,格式:docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG],例:docker tag ubuntu youclk/my-ubuntu:v1。
  • build: 使用Dockerfile创建镜像,格式:docker build [OPTIONS] PATH | URL | -,参数说明:-t tag 例:docker build -t youclk/my-ubuntu:v1 .

你可能感兴趣的:(docker,学习,容器)