docker要去Centos系统内核版本高于3.10
通过 uname -r 命令查看当前Centos内核版本
uname -r
yum -y update
yum remove docker docker-common docker-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum -y install vim*
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum install docker-ce
安装指定版本: yum install docker-ce-3:19.03.6
systemctl start docker #启动docker
ps -ef|grep docker #查看是否存在docker进程
systemctl enable docker #将docker加入开机启动
docker version
yum -y remove docker-engine
登陆阿里云: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 pull java:8
docker images
docker rmi java
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!”
docker ps # 目前正在运行的docker容器
docker ps -a # 查看所有容器
docker stop 容器id(CONTAINER ID)停止具体一个容器
docker stop 容器名称 停止容器名称这一类容器
docker kill 容器id(CONTAINER ID)停止具体一个容器
docker start 容器id(CONTAINER ID)停止具体一个容器
docker inspect 容器id(CONTAINER ID)
curl 172.17.0.2:80 # 容器ip :172.17.0.2
docker container logs 容器id(CONTAINER ID)
docker top 容器id(CONTAINER ID)
docker container exec -it 容器id(CONTAINER ID) /bin/bash
docker rm 容器id(CONTAINER ID) # 只能删除已停止的容器
docker rm -f 容器id(CONTAINER ID)# 可删除正在运行的容器
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
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项目