docker再探

1.测试内核版本

docker要去Centos系统内核版本高于3.10
通过 uname -r 命令查看当前Centos内核版本
uname -r

2.使用root权限登陆Centos,将yum包更新到最新。

yum -y update

3.卸载旧版本

yum remove docker docker-common docker-selinux docker-engine

4.安装需要的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2
yum -y install vim*

5.设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6.查看仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

7.安装docker

yum install docker-ce
安装指定版本: yum install docker-ce-3:19.03.6

8.启动docker并加入开机启动

systemctl start docker  #启动docker
ps -ef|grep docker      #查看是否存在docker进程
systemctl enable docker #将docker加入开机启动

9.验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

10.卸载docker

yum -y remove docker-engine

PS:配置镜像加速器

登陆阿里云:https://cr.console.aliyun.com/#/accelerator

docker search java  #在docker官方镜像源中进行查找java关键字。搜索的结果均为镜像
cd /etc/docker
touch daemon.json
vim daemon.json
{
  "registry-mirrors": ["https://b1gbxban.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker

docker 安装 jdk1.8

1.下载java8

docker pull java:8

2.列出本地docker镜像

docker images

3.删除本地镜像

docker rmi java

容器相关命令

  1. 新建并启动容器
   docker run   # 新建并启动一个容器
   -d选项:后台运行
   -P选项:随机端口映射
   -p选项:指定端口映射,有以下4种格式。
   		--ip:hostPort:containerPort
   		--ip::containerPort
   		--hostPort:containerPort
   		--containerPort
   -network选项:指定网络模式,该选项有以下可选参数:
   		--network=bridge:默认选项,表示连接到默认的网桥
   		--network=host:容器使用宿主机网络
   		--network=container:NAME-or-ID: 告诉Docker让新建的容器使用已有的网络配置
   		--network=none:不配置该容器的网络,用户可自定义网络配置
   docker run -d -p 91:80 nginx #启动nginx
   在本例中,为docker run添加了两个参数,含义如下:
   -d 后台运行
   -p 宿主机端口:容器端口 #将宿主机端口映射到容器的80端口
   yum -y install net-tools # 或者 ip addr 主要是查看ip  我这里是192.168.56.134
   http://192.168.56.134:91/  ====> 出现 “Welcome to nginx!”
  1. 进入nginx容器内部
	docker ps # 目前正在运行的docker容器
	docker ps -a  # 查看所有容器
  1. 停止容器
	docker stop 容器id(CONTAINER ID)停止具体一个容器
	docker stop 容器名称 停止容器名称这一类容器
  1. 强制停止容器
	docker kill 容器id(CONTAINER ID)停止具体一个容器
  1. 启动已停止了的容器
	docker start 容器id(CONTAINER ID)停止具体一个容器
  1. 查看容器所有信息
	docker inspect 容器id(CONTAINER ID) 
	curl 172.17.0.2:80 # 容器ip :172.17.0.2
  1. 查看容器所有信息
	docker container logs 容器id(CONTAINER ID)
  1. 查看容器里的进程
	docker top 容器id(CONTAINER ID)
  1. 进入容器
	docker container exec -it 容器id(CONTAINER ID) /bin/bash
  1. 删除容器
	docker rm 容器id(CONTAINER ID) # 只能删除已停止的容器
	docker rm -f 容器id(CONTAINER ID)# 可删除正在运行的容器

构建nginx docker镜像

cd /root
cd ..
mkdir app
cd mkdir
touch Dockerfile
vim Dockerfile 
将以下内容复制进Dockerfile
FROM nginx
RUN echo '

This is fang Nginx!!!

' > /usr/share/nginx/html/index.html 说明: FROM -->指定基础镜像 RUN -->执行命令 FROM,RUN都是Dockerfile的指令(Dockerfile指令编程) docker build -t nginx:fang . docker ps docker run -d -p 92:80 nginx:fang

docker部署web应用

  1. 打成jar文件
  2. dtbird-admin-0.0.1-SNAPSHOT
cd /root
cd ..
mkdir app
cd /app
mkdir dtbird-admin
cd /dtbird-admin
touch Dockerfile
vim Dockerfile 
将以下内容复制进Dockerfile
# 基于哪个镜像
From java:8
# 将本地文件夹挂载到当前容器
VOLUME /tmp
# 复制文件到容器
ADD  dtbird-admin-0.0.1-SNAPSHOT.jar /app.jar
# 申明需要暴露的端口
EXPOSE 8085
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","/app.jar"]

docker build -t dtbird-admin:0.0.1 .
docker ps
docker run -d -p 8085:8085 dtbird-admin:0.0.1
访问宿主机ip:8085端口进而访问docker项目

Docker Compose编排微服务?

你可能感兴趣的:(学习)