docker

安装docker

1.在线安装docker

1.dolcker在线安装工具

sudo yum install -y yum-utils 

 2.设置yum仓库地址

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager \
     --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.更新yum缓存

sudo yum makecache fast #yum 是包管理器

4.安装新版docker

sudo yum install -y docker-ce docker-ce-cli containerd.io

2.离线安装docker

1.下载docker离线安装包

https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz

2.下载离线安装工具

https://github.com/Jrohy/docker-install/

将下载好的工具解压

3.在linux环境下创建目录 /root/setup/docker,将下载好的资源放在次目录下

[root@centos7964 docker]# pwd
/root/setup/docker
[root@centos7964 docker]# ls -l
总用量 68132
-rw-r--r--. 1 root root 69637582 8月   4 13:04 docker-20.10.6.tgz
-rw-r--r--. 1 root root   114793 8月   4 13:04 docker.bash
-rwxr-xr-x. 1 root root     7546 8月   4 13:04 install.sh
[root@centos7964 docker]#

4.安装

# 进入/root/setup/docker 文件夹
cd /root/setup/docker

# 为 install.sh添加执行权限
chmod +x install.sh

# 安装
./install.sh -f docker-20.10.6.tgz

5.检查安装状态

docker info

3.docker服务基本操作

1.启动docker服务

 systemctl start docker

2.查看docker状态

systemctl status docker

3.设置开机自启

systemctl enable docker

4.关闭开机自启

systemctl disable docker

5.重新启动Docker服务

 systemctl restart docker

6.查看Docker信息

docker info

查看docker info中具体key的信息

docker info | grep 'Docker Root Dir:'

7.停止docker服务

systemctl stop docker

8.docker镜像加速

修改配置文件 /etc/docker/daemon.json下面命令直接生成文件 daemon.json

cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF

4.docker镜像操作

1.下载镜像

docker pull hello-world

2.查看镜像文件

docker images

3.查看镜像详情

docker inspect 镜像名或镜像id

docker inspect hello-world

4.查看镜像历史

docker history hello-world

5.导出镜像文件

镜像导出(linux系统中的镜像文件下载到本地-例如window),导出后给他人使用

docker save  hello-world | gzip > hello-world.tar.gz  

6.删除镜像文件

docker image rm hello-world

7.导入镜像操作

docker load < hello-world.tar.gz  

8.运行镜像文件

docker run hello-world

5.容器操作

1.下载镜像

docker pull centos:7

查看下载好的镜像

docker images

2.创建并启动容器

docker run -it xxxx bash

1)xxxx - 镜像名, 或 image id 的前几位,
2)-it 这是两个参数(-i表示交互式操作, -t 表示终端)
3) bash 表示进入操作终端,基于交互式进行相关操作(例如执行linux相关指令)

通过docker启动运行 centos7镜像

docker run -it centos:7 bash

3.查看Docker中的容器

查看运行中的容器(要在宿主机执行docker指令)

docker ps

查看所有容器

docker ps -a

4.查看容器日志

docker container logs 802  #802为自己的容器id(一般写前三位即可)

5.停止容器

docker container stop 802  #802为容器自己的id

6.重启容器

docker container restart 802 #802位容器自己的id

7.当容器处于运行状态,要进入容器,可以使用 docker exec 命令

docker exec -it 802 bash #802为容器id

8.退出容器

exit

9.删除容器

docker container rm 802 #802为容器id

如果删除运行中的容器,需要添加 -f 参数执行强制删除

docker container rm -f 802 #802为容器id

清理所有处于终止状态容器

docker container prune

6.数据管理

在容器中管理数据主要有两种方式:

  • 数据卷(Volumes)
  • 挂载主机目录 (Bind mounts)

数据卷

数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用,默认会一直存在,即使容器被删除

1.数据卷操作

1.创建数据卷

docker volume create container-vol

2.查看所有数据卷

docker volume ls

查看指定 数据卷 的信息

docker volume inspect container-vol

3.启动挂载数据卷的容器

docker run -it --mount source=container-vol,target=/root centos:7 bash

简写方式

docker run -it -v container-vol:/root centos:7 bash

-v container-vol:/root 把数据卷 container-vol 挂载到容器的 /root 目录

4.删除数据卷

docker volume rm container-vol

清理无主数据卷

docker volume prune

2.挂载主机目录

1.在启动容器时,以目录直接挂载的方式进行数据操作

docker run -it -v /usr/app:/opt/app centos:7 bash

1)/usr/app:为宿主机目录
2)/opt/app: 为启动容器的一个目录
3)-v 用于指定挂载目录,如果本地目录(宿主机目录)不存在, Docker 会自动为你按照挂载目录进行目录的创建。

2.查看挂载目录信息

docker inspect 91a #91a 为容器id

7.Dockerfile及镜像制作

Dockerfile 是一个用来构建镜像的文本文件

1.制作JDK镜像2.

准备

  1. centos:7镜像 (所有的镜像文件创建时都需要有一个空的centos镜像,就类似通过一个空的光盘或u盘创建一个系统启动盘是一样的)
  2. jdk压缩包,基于此压缩包,制作jdk镜像。
  3. 将jdk拷贝到 /root/setup/jdk/ 目录下

创建Dockerfile文件

1.进入jdk压缩包文件所在目录,基于vim创建Dockerfile文件

vim  Dockerfile

2.按键盘上的"i"进入编辑模式

3.拷贝如下代码到你的Dockerfile中

FROM centos:7
ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker
ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
    PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
CMD ['bash']

4.拷贝完成,按ESC进入命令行模式(又叫最后一行模式)

5.然后按shift+冒号,输入wq保存退出

创建JDK镜像文件

1.在Dockerfile所在目录执行docker build指令

docker build -t jdk:8 .  #不要丢掉这里的点,-t表示镜像标识(镜像名),是tag单词的缩写.

运行JDK镜像(image)文件

1.在宿主机中执行如下指令,启动JDK容器

docker run -it jdk:8 bash

查看环境变量

echo $PATH

查看JDK版本信息

java –version

基于JDK镜像启动sentinel

1.将sentinel拷贝宿主机指定目录,例如/root/servers目录

2.启动镜像容器,通过java执行运行web服务

基于jdk:8镜像启动运行sentinel服务(服务启动后可在宿主机通过localhost:8180进行访问)

docker run -d -p 8180:8080 --name sentinel \
-v /root/servers:/usr/sca \
jdk:8 java -jar /usr/sca/sentinel-dashboard-1.8.0.jar
  1. -d 表示后台运行
  2. -p 用于实现端口映射(假设外部要访问这个容器,必须要做端口映射)
  3. –name 表示为启动的容器起一个名字

3.服务启动后可通过docker ps 指令查看启动的服务,假如看不到服务,可能服务启动失败,可通过如下指令查看具体日志

docker container logs  689 #这里689为容器id,也可以为你的容器名

4.访问sentinel服务

2.构建sentinel镜像

1.在sentinel所在目录创建Dockerfile文件,并添加如下内容

FROM centos:7
ADD jdk-8u51-linux-x64.tar.gz  /usr/local/
ADD sentinel-dashboard-1.8.0.jar  /usr/local/
ENV JAVA_HOME=/usr/local/jdk1.8.0_51 \
    PATH=/usr/local/jdk1.8.0_51/bin:$PATH
EXPOSE 8080
ENTRYPOINT ["java","-jar","/usr/local/sentinel-dashboard-1.8.0.jar"]

 EXPOSE表示对外暴露的服务端口,ENTRYPOINT中写的是你容器启动时候要执行的指令

2.使用 Dockerfile 构建镜像

docker build -t  sentinel:8 .  #不要丢掉这里的点

3.后台运行sentinel容器

docker run -d --name sentinel8181 -p 8181:8080 sentinel:8  #-d 表示后台运行,-p用于指定端口映射,sentinel:8为镜像文件名

4.查看sentinel容器

docker ps

5.访问sentinel服务

可以在window中访问时你的linux系统中启动的sentinel服务,ip地址应该为宿主机的ip地址,端口号为宿主机的端口号

8.镜像安装

1.1MySql

1.在hub.docker.com上搜索mysql镜像

2.拉取指定版本的mysql,也可以指定拉取版本

 docker pull mysql:8.0.23

3.检查mysql镜像

 docker images

4.启动运行mysql镜像 (docker run 用于启动一个容器)

sudo docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.23

假如安装过程中失败了,则可通过docker ps -a 查看以前的容器,假如已存在,则通过docker rm 镜像id 删除再重新安装即可

1.2登陆mysql

1.进入容器 (退出容器用exit)

sudo docker exec -it mysql bash
2.登陆(默认密码root),一定要先进入mysql容器

mysql -uroot -proot

3.停止mysql

docker stop mysql

4.启动mysql

docker start mysql

5.查看mysql启动时的日志

docker container logs mysql 

6.设置mysql开机自启动

docker update mysql --restart=always

2.1 安装Redis

1.下载镜像文件

docker pull redis

2.创建redis配置文件目录

mkdir -p /usr/local/docker/redis01/conf

在配置文件录下创建redis.conf配置文件

sudo docker run -p 6379:6379 --name redis01 \
-v /usr/local/docker/redis01/data:/data \
-v /usr/local/docker/redis01/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf 

3.创建redis实例并启动


sudo docker run -p 6379:6379 --name redis01 \
-v /usr/local/docker/redis01/data:/data \
-v /usr/local/docker/redis01/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf 

4.查看正在运行的进程

docker ps

2.1访问redis

1.控制台直接连接redis测试

docker exec -it redis01 bash

2.检测redis 版本

redis-server  -v

redis-cli -v

3.登录redis(默认不需要密码)

redis-cli

直接将2,3步骤合为一个步骤执行

docker exec -it redis01 redis-cli

4.停止redis

docker stop redis01

5.启动redis

docker start redis01

6.重启redis

docker restart redis01

3.1安装nginx

1.拉取nginx镜像(从hub.docker.com查找)

docker pull nginx

2.查看images

docker images

3.创建数据卷(这个对象会在宿主机直接创建一个目录)

docker volume create nginx-vol

4.启动nginx服务

docker run --name nginx  -p 80:80 -v nginx-vol:/etc/nginx -d nginx

其中:/etc/nginx 为nginx容器启动时,nginx镜像文件默认的解压目录

说明:假如以后想修改nginx配置,可以直接去nginx-vol数据卷对应的目录去修改.

3.2访问nginx

 1.停止

docker stop nginx

2.启动

docker start nginx

3.重启

docker restart nginx

4.1安装nzcos组件

1.拉取nacos

docker pull nacos/nacos-server:1.4.1

2.mysql中执行nacos的sql脚本文件

1)将nacos-mysql.sql拷贝到mysql容器的宿主机对应的挂载目录

查看mysql的挂载目录

docker inspect mysql

2)在linux环境下启动并登录mysql

启动mysql进入mysql

docker exec -it mysql bash

登录mysql

mysql -uroot -p

3)通过source指令运行容器目录的SQL文件

source  /etc/mysql/nacos-mysql.sql  #这里的/etc/mysql为容器中的一个目录(要选择你自己挂载的目录)

3.创建并启动nacos容器

拷贝下面内容时,账号和密码要用自己宿主机ip,自己数据库的账号密码

docker run  \
-e TZ="Asia/Shanghai" \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_DATABASE_NUM=1 \
-e MYSQL_SERVICE_HOST=192.168.126.129 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-p 8848:8848 \
--name nacos \
--restart=always \
-d nacos/nacos-server:1.4.1

参数说明

  • 单节点模式                       MODE=standalone
  • 数据库地址                       MYSQL_SERVICE_HOST
  • 数据库用户名                   MYSQL_SERVICE_USER
  • 数据库密码                       MYSQL_SERVICE_PASSWORD
  • 需连接的数据库名称         MYSQL_SERVICE_DB_NAME
  • 端口映射                           -p 8848:8848
  • 任意时候重启容器,开机就能自动启动容器(需设置docker为开机自启)
--restart=always

4.检查nacos

docker ps

5.访问nacos

启动nacos,然后在windows中输入http://ip:port/nacos方式进行访问测试

6.停止

docker stop nacos

7.启动

docker start nacos

8.重启

docker restart nacos

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值