首先更新ubuntu的apt源索引
sudo apt-get update
这时可能会遇到如下错误:
[sudo] pyvip 的密码:
获取:1 http://dl.google.com/linux/chrome/deb stable InRelease [1,811 B]
错误:1 http://dl.google.com/linux/chrome/deb stable InRelease
由于没有公钥,无法验证下列签名: NO_PUBKEY 78BD65473CB3BD13
获取:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
命中:3 http://cn.archive.ubuntu.com/ubuntu bionic InRelease
获取:4 http://cn.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
获取:5 http://security.ubuntu.com/ubuntu bionic-security/main amd64 DEP-11 Metadata [43.8 kB]
获取:6 http://cn.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
获取:7 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 DEP-11 Metadata [49.1 kB]
获取:8 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 DEP-11 Metadata [2,464 B]
获取:9 http://cn.archive.ubuntu.com/ubuntu bionic-updates/main i386 Packages [685 kB]
获取:10 http://cn.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [951 kB]
获取:11 http://cn.archive.ubuntu.com/ubuntu bionic-updates/main amd64 DEP-11 Metadata [306 kB]
获取:12 http://cn.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1,077 kB]
获取:13 http://cn.archive.ubuntu.com/ubuntu bionic-updates/universe i386 Packages [1,018 kB]
获取:14 http://cn.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 DEP-11 Metadata [279 kB]
获取:15 http://cn.archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 DEP-11 Metadata [2,468]
获取:16 http://cn.archive.ubuntu.com/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [7,972]
正在读取软件包列表... 完成
W: GPG 错误:http://dl.google.com/linux/chrome/deb stable InRelease: 由于没有公钥,无法验证下列签名5473CB3BD13
E: 仓库 “http://dl.google.com/linux/chrome/deb stable InRelease” 的签名不再生效。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
注意以下报错
错误:1 http://dl.google.com/linux/chrome/deb stable InRelease
由于没有公钥,无法验证下列签名: NO_PUBKEY 78BD65473CB3BD13
在网上搜索,查到可行的方法是:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 78BD65473CB3BD13
然后再执行:
$sudo apt-get update
第一步成功后:
#2, 安装包允许apt通过HTTPS使用仓库
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
第三步:
#3, 添加Docker官方GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
第四步:
4, 设置Docker稳定版仓 添加docker源
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
第四步之后可能会出现以下提示:
E: 仓库'http://dl.google.com/linux/chrome/deb stable InRelease'将其'Origin'值从'Google, Inc.'修改到了'Google LLC'
N: 为了让这个仓库能够应用,这必须在更新之前显式接受。更多细节请参阅 apt-secure(8) 手册。
这时,输入以下命令解决:
sudo apt update
第五步:
#5, 添加仓库后,更新apt源索引
sudo apt-get update
第六步,安装最新版Docker CE(社区版)
sudo apt-get install docker-ce
#7, 通过运行hello-world 映像来验证是否正确安装了Docker #Engine-Community 。
sudo docker run hello-world # 创建容器
第七步:为了避免每次命令都输入sudo,可以设置用户权限,注意执行后须注销重新登录
sudo usermod -a -G docker $USER
如果需要卸载docker
- 卸载Docker Engine-社区软件包:
sudo apt-get purge docker-ce
- 主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:
sudo rm -rf /var/lib/docker
=================================
以下是docker使用事项
以下示例启动Redis容器并将其配置为始终重新启动,除非明确将其停止或重新启动Docker。
- on-failure 如果容器由于错误而退出,请重新启动容器,该错误表示为非零退出代码。
docker run -dit --restart unless-stopped ubuntu
docker 查找镜像
https://hub.docker.com/
镜像字段介绍
- **REPOSITORY:**表示镜像的仓库源
- **TAG:**镜像的标签
- **IMAGE ID:**镜像ID
- **CREATED:**镜像创建时间
- **SIZE:**镜像大小
容器字段介绍
- CONTAINER ID: 容器 ID。
- IMAGE: 使用的镜像。
- COMMAND: 启动容器时运行的命令。
- CREATED: 容器的创建时间。
- STATUS: 容器状态
安装ubuntu镜像
docker search ubuntu 在仓库查找镜像
docker pull ubuntu 安装镜像
docker images 查看docker镜像
# 运行docker镜像
-name自定义容器名,-p指定端口映射,前者为虚拟机端口,后者为容器端口,成功后返回id
查看所有启动的容器(查看所有容器加 -a)
docker run -dti --name ubuntu_test -p 8088:8088 ubuntu
查看容器信息 根据id
docker inspect id
# /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell
进入 容器 ubuntu
docker exec -it id号 /bin/bash
# 查看版本
cat /etc/issue
# 退出
先按,ctrl+p
再按,ctrl+q
exit 会退出整个系统
# 制作docker镜像 1.0是版本号 ubuntu_test 是镜像名字
docker commit fae ubuntu_demo:1.0
# 打包镜像
docker save -o ubuntu_test1.tar ubuntu_test1:1.0
docker 搜索
镜像加速静进入网址:https://cr.console.aliyun.com/cn-hangzhou/mirrors
# Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
docker search tomcat
# 安装
docker pull tomcat
# 创建容器
docker run -dti --name tomcat_demo -p 8080:8080 tomcat
# 访问
http://IP:8080/
加载本地镜像
docker load -i ubuntu.tar
####docker启动与停止
# 启动docker
sudo service docker start
# 停止docker
sudo service docker stop
# 重启docker
sudo service docker restart
docker 镜像介绍
**Docker 把应用程序及其依赖,打包在 image 文件里面。**只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。
image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。
image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件,而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不是从零开始制作。
为了方便共享,image 文件制作完成后,可以上传到网上的仓库。Docker 的官方仓库 Docker Hub 是最重要、最常用的 image 仓库。此外,出售自己制作的 image 文件也是可以的。
拉去镜像
要想获取某个镜像,我们可以使用pull命令,从仓库中拉取镜像到本地,如
docker image pull library/hello-world
由于 Docker 官方提供的 image 文件,都放在library组里面,所以它的是默认组,可以省略。因此,上面的命令可以写成下面这样。
省略写法 docker image pull hello-world
删除镜像
docker image rm 镜像名或镜像id
常用参数说明
- -i 允许你对容器内的标准输入 (STDIN) 进行交互。
- -t 表示容器启动后会进入其命令行,在新容器内指定一个伪终端或终端。
- –name 为创建的容器命名
- -v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。
- -d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。 使用以下命令创建一个以进程方式运行的容器(后台)
- -p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射
- -e 为容器设置环境变量
- –network=host 表示将主机的网络环境映射到容器中,容器的网络与主机相同
停止与启动容器
# 停止一个已经在运行的容器
docker stop 容器名或容器id
# 启动一个已经停止的容器
docker start 容器名或容器id
# kill掉一个已经在运行的容器
docker container kill 容器名或容器id
dockerfile
Docker可以通过阅读Docker的指令来自动构建映像 Dockerfile。A Dockerfile是一个文本文档,其中包含用户可以在命令行上调用以组装图像的所有命令。使用docker build 用户可以创建自动构建,该构建连续执行多个命令行指令。
命令介绍:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4vsQlEEi-1591267552720)(/…/…/…/Users/灰太狼大哥/Desktop/django项目课件/images/dockerfile.png)]
基于centos 构建一个 nginx镜像
# 1、创建工作目录
mkdir nginx_image
vim Dockerfile
# 添加以下命令
# docker pull centos
FROM centos:7
MAINTAINER www.laowang.com
RUN yum install -y gcc gcc-c++ make \
openssl-devel pcre-devel gd-devel \
iproute net-tools telnet wget curl && \
yum clean all && \
rm -rf /var/cache/yum/*
RUN wget http://nginx.org/download/nginx-1.15.5.tar.gz && \
tar zxf nginx-1.15.5.tar.gz && \
cd nginx-1.15.5 && \
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module && \
make -j 4 && make install && \
cd /
ENV PATH $PATH:/usr/local/nginx/sbin
WORKDIR /usr/local/nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
docker build -t nginx:v1 -f Dockerfile-nginx . # 使用 Dockerfile-nginx 文件构建一个基础镜像 nginx:v1
-t nginx:v1 # 指定版本tag=v1
-f Dockerfile-nginx # 指定dockerfile的名称
# docker run -d --name nginx01 -p 8080:80 nginx:v1
docker run -dti --name ngin_test nginx
# 容器内安装 rz
操作系统:ubuntu
rz、sz命令找不到:
执行命令:apt-get update && apt-get install lrzsz
centos
yum install lrzsz -y