Docker快速上手及常用指令集
Docker快速上手及常用指令集
建议 可以先把 泡泡slam的三个 docker 文章都阅读一遍
【泡泡Docker乐园】手把手带你走进Docker世界
【泡泡Docker乐园】Dockerfile简易教程 & LARVIO镜像
【泡泡Docker乐园】泡泡Docker基础镜像集发布
Docker 快速安装配置
参考博客:
Docker 学习笔记:Ubuntu16.04上Docker的安装及基本用法
1. 安装docker
ubuntu 安装步骤 清华镜像源安装说明
首先安装依赖:
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
信任 Docker 的 GPG 公钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
对于 amd64 架构的计算机,添加软件仓库:
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
最后安装
sudo apt-get update
sudo apt-get install docker-ce
2. DockerHub镜像配置
在 /etc/docker/daemon.json(没有则新建)文件中写入
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn/"]
}
重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
3.验证安装
sudo docker -v
查看 docker-ce 的版本,如果输出与下面类似的文本,则表明软件已经安装成功。
Docker version 19.03.13, build 4484c46d9d
4.配置免sudo运行docker命令
加入docker 用户组
sudo groupadd docker
sudo gpasswd -a ${USER} docker
newgrp docker
检验 是否 免sudo 成功
输入 下面指令没有报错则成功
docker ps
5.启动Docker
查看docker服务是否启动:
sudo systemctl status docker
如果Docker未启动,则启动Docker:
sudo systemctl start docke
6.三个拉取docker 镜像demo
6.1 docker 拉取 hello-world image
搜索hello-world image
docker search hello-world
该表格包含五列,含义如下:
-
NAME:镜像仓库名称。
-
DESCRIPTION:镜像仓库描述。
-
STARS:镜像收藏数,表示该镜像仓库的受欢迎程度,类似于GitHub的Stars。
-
OFFICAL:表示是否为官方仓库,该列标记为[OK]的镜像均由个软件的官方项目组创建和维护。由结果可知,java这个镜像仓库是官方仓库,而其他仓库都不是官方镜像仓库。
-
AUTOMATED:表示是否为自动构建镜像仓库。
从 dockerhub 中下载image
docker pull hello-world
查看已下载的image
docker images
建立容器,运行hello-world
docker run hello-world
6.2 docker 拉取 Nginx
参考博客: Docker 安装 Nginx
查找当前最新版本
docker search nginx
取最新版的 Nginx 镜像
docker pull nginx:latest
运行容器
docker run --name nginx-test -p 8080:80 -d nginx
参数说明:
–name nginx-test:容器名称。
-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
-d nginx: 设置容器在在后台一直运行。
最后我们可以通过浏览器可以直接访问 8080 端口的 nginx 服务:
noVnc可视化 (浏览器可视化)
在浏览器输入,可看到nginx的结果
http://localhost:8080/
6.3 Docker练习例子:基于 VNCServer + noVNC 构建 Docker 桌面系统
参考博客:
添加链接描述
【泡泡Docker乐园】泡泡Docker基础镜像集发布
下载指定的镜像images
docker pull dorowu/ubuntu-desktop-lxde-vnc
输入运行docker 命令
docker run -it -p 5900:5900 dorowu/ubuntu-desktop-lxde-vnc
noVNC可视化
docker run -it --rm -p 8080:80 dorowu/ubuntu-desktop-lxde-vnc
浏览器 http://127.0.0.1:8080/
VNC可视化
vnc 下载地址
VNC 输入 :5900
即可看到界面
Docker 常用指令集
参考博客:
Docker 学习笔记:Ubuntu16.04上Docker的安装及基本用法
搜索镜像
sudo docker search java
下载镜像
sudo docker pull java
列出本地镜像
docker images
-
REPOSITORY:镜像所属仓库名称
-
TAG:镜像标签。默认是latest,表示最新。
-
IMAGE ID:镜像ID,表示镜像唯一标标识
-
CREATED:镜像创建时间
-
SIZE:镜像大小
删除本地镜像:
删除指定名称的镜像
sudo docker rmi hello-world
删除所有镜像
sudo docker rmi -f $(docker images)
-f 参数表示强制删除
Docker容器常用命令
新建并启动容器
使用docker run命令即可新建并启动一个容器。
该命令是最常用命令,它有很挫选项,下面将列举一些常用选项。
-
d 选项:表示后台运行
-
P 选项:随机端口映射
-
p 选项:指定端口映射,有一下四种格式
-
ip:hostPort:containerPort
-
ip::containerPort
-
hostPort:containerPort
-
containerPort
-
-
network 选项:指定网络模式,该选项有一下可选参数:
-
–network=bridge:默认选项,表示连接到默认的网桥。
-
–network=host:容器使用宿主机的网络。
-
–network=container:NAME_or_ID:告诉Docker让新建的容器使用已有容器的网络配置。
-
–network=none:不配置该容器的网络,用户可自定义网络配置。
-
示例1:
sudo docker run java /bin/echo 'Hello World'
这样终端会打印Hello World的字样,跟在本地直接执行/bin/echo ‘Hello World’ 一样。
示例2:
sudo docker run -d -p 91:80 nginx
这样就能启动一个Nginx容器。在本例中,为docker run添加了两个参数,含义如下:
-d # 后台运行
-p 宿主机端口:容器端口 # 开放容器端口到宿主机端口
浏览器输入 以下地址,可访问Nginx
localhost:91
列出本地容器
docker ps
如需要列所有容器(包括已停止的容器),可使用 -a 参数。
docker ps -a
该表格包含了7列,含义如下:
-
CONTAINER_ID:表示容器ID
-
IMAGE:表示镜像名称
-
COMMAND:表示启动容器时运行的命令
-
CREATED:表示容器创建时间
-
STATUS:表示容器运行状态。UP表示运行中,Exited表示已停止。
-
PORTS:表示容器对外的端口号
-
NAMES:表示容器名称,该名称默认由Docker自动生成,也可使用docker run命令的–name选项自定指定。
停止容器
使用docker stop命令,即可停止容器,例如:
sudo docker stop 2730ed88f8e5
其中 2730ed88f8e5 是容器ID,当然也可以使用 docker stop 容器名称 来停止指定容器。
启动已停止的容器
使用docker run命令,即可新建并启动一个容器。对于已停止的容器,可以使用docker start命令来启动。例如:
sudo docker start 2730ed88f8e5
重启容器
可使用docker restart命令来重启容器。该命令实际上是先执行了docker stop命令,然后再执行了docker start命令。
进入容器
某场景下,可能需要进入运行中的容器。
使用docker attach命令进入容器。例如:
sudo docker attach 2730ed88f8e5
删除容器
删除指定容器
sudo docker rm 2730ed88f8e5
删除所有容器
sudo docker rm -f $(docker ps -a -q)
上一篇: 简单简历及部署