docker教程

docker教程

docker是什么

Docker 是一个开源的应用容器引擎,基于 [Go 语言] 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Ubuntu 系统

安装ftp服务

1.安装 vsftpd

apt-get install vsftpd 
#启动
service vsftpd start
#停止
service vsftpd stop 
#重启
service vsftpd restart
#状态
service vsftpd status

在这里插入图片描述

2.安装vim 出现[Y/n] 输入y

apt-get install vim

3.修改配置文件,进入配置文件

 vim /etc/vsftpd.conf  
listen=NO                 # 服务器监听  
local_enable=YES         # 是否允许本地用户访问  
write_enable=YES         # 是否允许上传文件,不开启会报 550 permission denied  
anonymous_enable=NO     # 匿名访问允许,默认不要开启,  
anon_upload_enable=YES 	# 匿名上传允许,默认是NO  
#anon_mkdir_write_enable=YES # 匿名创建文件夹允许 

4.修改ftpusers文件、注释掉root 允许root用户登录ftp

vim /etc/ftpusers

在这里插入图片描述

5.xftp连接
在这里插入图片描述

安装JDK

1.下载好相应的jdk使用xftp上传

在这里插入图片描述

2.进入该目录解压该文件

cd /usr/local/java
ls
tar -zxvf jdk-8u144-linux-x64.tar.gz
#重命名
mv jdk1.8.0_144 jdk1.8


在这里插入图片描述

3.修改环境变量

vim ~/.bashrc
在末尾追加下面内容,保存退出
#set oracle jdk environment
export JAVA_HOME=/usr/local/java/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

5.使环境变量生效

source ~/.bashrc

6.验证是否安装成功

java -version

在这里插入图片描述

Ubuntu Docker

1.使用 Ubuntu Docker 仓库进行安装

设置仓库

更新 apt 包索引

 sudo apt-get update
 
 #安装 apt 依赖包,用于通过HTTPS来获取仓库:
 
sudo apt-get install \
	ca-certificates \
  	curl \
  	gnupg \
  	lsb-release

在这里插入图片描述

添加 Docker 的官方 GPG 密钥:

 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

在这里插入图片描述

使用以下指令设置稳定版仓库


  echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


2.安装 Docker Engine

1.安装最新版本的 Docker Engine:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

2.或者安装指定版本的 Docker Engine:

 apt-cache madison docker-ce
 
 sudo apt-get install docker-ce=5:20.10.16~3-0~ubuntu-groovy docker-ce-cli=5:20.10.16~3-0~ubuntu-groovy containerd.io

3.出现E: Version ‘5:20.10.43-0ubuntu-groovy’ for ‘docker-ce’ was not found

在这里插入图片描述

解决

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable"

4.通过运行hello-world镜像来验证Docker Engine是否正确安装:

sudo docker run hello-world

在这里插入图片描述

Docker服务的启动与自启动

开启开机自启动:

sudo systemctl enable docker.service
sudo systemctl enable containerd.service
#关闭开机自启动:
sudo systemctl disable docker.service
sudo systemctl disable containerd.service
# 启动 停止 关闭
 sudo service docker start
 sudo service docker stop
  sudo service docker restart

卸载Docker

sudo apt-get purge docker-ce docker-ce-cli containerd.io

#删除相关文件
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/docker

Docker安装Nginx

1.查看本地镜像

docker images

在这里插入图片描述

2.获取最新的Nginx镜像

docker pull nginx:latest

在这里插入图片描述

3.运行容器

docker run --name nginx-test -p 80:80 -d nginx

#参数说明:
#--name nginx-test**:容器名称。
#-p 80:80**: 端口进行映射,将本地 80 端口映射到容器内部的 80 端口。
#-d nginx**: 设置容器在在后台一直运行。

在这里插入图片描述

4.访问ip:80

在这里插入图片描述

Docker安装MYSQL

1.查看版本

docker search mysql

在这里插入图片描述

2.拉取 MySQL 镜像

docker pull mysql:latest

在这里插入图片描述

3.查看本地镜像

docker images

在这里插入图片描述

4.运行容器

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
 
 #参数说明:
 #-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
 #MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

在这里插入图片描述

5.通过 docker ps 命令查看是否安装成功:

在这里插入图片描述

本机可以通过 root 和密码 123456 访问 MySQL 服务

docker exec -it mysql-test bash
#mysql-test改成自己的mysql名称或id
mysql -uroot -p123456

在这里插入图片描述

6.配置可远程连接数据库

use mysql; 
select Host,User from user;
#修改host为通配符%
update user set host = '%' where User = 'root';

select user,plugin from user where user='root';
 
# 注意:如果是远程连接,请将'localhost'换成'%'
alter user 'root'@'%' identified with mysql_native_password by '你的数据库密码';
或
alter user 'root'@''localhost' identified with mysql_native_password by '你的数据库密码';
 
#刷新权限
flush privileges;

7.navicat连接

Docker安装Tomcat

1.查看版本

docker search tomcat

在这里插入图片描述

2.拉取 Tomcat 镜像

# 安装最新版
docker pull tomcat
# version为指定的版本
docker pull tomcat:8.5.56

在这里插入图片描述

3.查看本地镜像

docker images

在这里插入图片描述

4.运行Tomcat容器

docker run --name tomcat_test -p 8080:8080 -d tomcat:8.5.56
#--name tomcat_test: tocmat容器名称 自定义
#-p:8080:8080: 端口映射 8080任意,8080为默认端口
#-d:后台运行

在这里插入图片描述

5.通过 docker ps 命令查看是否安装成功:

在这里插入图片描述

6.访问ip:8080
在这里插入图片描述

解决方法如下:

#进入容器
docker exec -it tomcat_test bash 

#进入tomcat目录
cd /usr/local/tomcat/

#删除webapps
rm webapps -rf

#将webapps.dist复制为webapps
cp webapps.dist webapps -r

#退出
exit

#动态查看日志
docker logs -f tomcat_test

再次访问ip:8080 成功

在这里插入图片描述

Docker 发布web项目

1.创建挂载目录

mkdir /usr/local/tomcat -p

2.拷贝docker资源

# 从容器中复制webapps.dist(低版本叫webapps)
# /usr/local/tomcat/webapps.dist 为docker中容器的目录
# /usr/local/tomcat/webapps 为宿主机的目录 
docker cp tomcat_test:/usr/local/tomcat/webapps.dist/ /usr/local/tomcat/webapps

#查看目录
cd /usr/local/tomcat/webapps
ll

在这里插入图片描述

3.挂载启动

# 启动挂载容器前,需要先关闭并且删除原有的容器
docker stop tomcat_test
docker rm tomcat_test

4.启动挂载容器

# -v表示挂载,前面的目录为宿主机目录结构,后面的目录为容器中的目录结构
docker run --name tomcat_test  \
-p 8080:8080 \
-v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps \
-d tomcat:8.5.56

#修改时区 默认情况下,tomcat中的时间比“北京”时间少8小时,需要进行手动时间校正
#进入容器
docker exec -it tomcat_test bash
#执行命令
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "Asia/Shanghai" > /etc/timezone

5.项目打成war包上传

在这里插入图片描述

6.访问ip:8080/bysjxksys/ 成功

在这里插入图片描述

Docker 安装 Redis

1.查看版本

docker search redis

在这里插入图片描述

2.拉取 redis 镜像

# 安装最新版
docker pull redis:latest

在这里插入图片描述

3.查看本地镜像

docker images

在这里插入图片描述

4.运行redis容器

docker run -itd --name redis-test -p 6379:6379 redis
#-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。

在这里插入图片描述

5.通过 docker ps 命令查看是否安装成功:

在这里插入图片描述

6.通过 redis-cli 连接测试使用 redis 服务

docker exec -it redis-test /bin/bash

在这里插入图片描述

Docker 删除镜像

注意:先停止容器,再删除容器,最后删除镜像.

docker images  ##查看镜像
docker ps -a  ##查看容器
docker stop ‘CONTAINER_ID’ ##停止容器
docker rm 'CONTAINER ID' ##删除容器
docker rmi 'IMAGE ID' ##删除镜像

Docker常用命名

#docker 基础命令
systemctl start | stop | restart docker

#容器操作
docker start | stop | restart


5.通过 docker ps 命令查看是否安装成功:

[外链图片转存中…(img-3PEvjETF-1658065830774)]

6.通过 redis-cli 连接测试使用 redis 服务

docker exec -it redis-test /bin/bash

[外链图片转存中…(img-znUyNdo3-1658065830774)]

Docker 删除镜像

注意:先停止容器,再删除容器,最后删除镜像.

docker images  ##查看镜像
docker ps -a  ##查看容器
docker stop ‘CONTAINER_ID’ ##停止容器
docker rm 'CONTAINER ID' ##删除容器
docker rmi 'IMAGE ID' ##删除镜像

Docker常用命名

#docker 基础命令
systemctl start | stop | restart docker

#容器操作
docker start | stop | restart


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值