Linux中Docker容器常用命令(jdk:8、nginx、mysql、nacos、Redis)

一、Docker

注意:代码段中开头的sudo为root管理身份,如果以root登录的,可不写sudo

1、安装新版 docker

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

2、启动docker

sudo systemctl start docker

3、设置 docker 开机启动

sudo systemctl enable docker

4、镜像加速

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

5、重新加载docker配置

sudo systemctl daemon-reload

6、重启docker服务

sudo systemctl restart docker

7、查看镜像配置

docker info

8、运行 hello-world 镜像,验证 docker

sudo docker run hello-world

9、检查docker 镜像

docker images

10、检查已启动的docker 服务 (正在运行的)

docker ps

11、希望查看所有镜像,包含没有运行的镜像容器,可以执行如下指令

docker ps -all

12、停止docker服务

docker stop 服务id

13、删除docker 镜像

docker image rm hello-world

14、假如镜像被占用着是不可以直接被删除的,需要先删除应用此镜像的容器,例如

docker container rm 容器名或容器id

15、通过 docker run 来创建启动容器(这个容器相当于一个独立的集装箱)

docker run -it centos:7 bash

Docker 在后台运行的标准操作包括:

  1. 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  2. 利用镜像创建并启动一个容器
  3. 分配一个文件系统(简版linux系统),并在只读的镜像层外面挂载一层可读写层
  4. 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
  5. 从地址池配置一个 ip 地址给容器

16、查看后台运行的容器输出结果(日志信息)

docker container logs 802

17、停止运行的容器,代码如下

docker container stop 802

18、重新启动容器,代码如下

docker container restart 802

19、当需要进入容器进行操作时,可以使用 docker exec 命令,例如

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

20、假如从宿主机进入了启动的容器,退出容器需要使用exit指令

exit

21、假如容器不用了,可执行删除操作。其中,如果删除运行中的容器,需要添加 -f 参数。

docker container rm 802 #802为容器id

22、清理所有终止状态容器

docker container prune

二、数据卷

1、创建数据卷

docker volume create container-vol

2、查看所有数据卷

docker volume ls

3、查看指定 数据卷 的信息

docker volume inspect container-vol

4、启动挂载数据卷的容器

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

# 或者:

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

5、删除数据卷(如果数据卷被容器使用则无法删除)

docker volume rm container-vol

清理无主数据卷

docker volume prune

三、挂载主机目录(常用)

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

其中:

1)/usr/app:为宿主机目录

2)/opt/app: 为启动容器的一个目录

3)-v 用于指定挂载目录,如果本地目录(宿主机目录)不存在, Docker 会自动为你按照挂载目录进行目录的创建。

查看挂载目录信息:

docker inspect 91a #91a 为容器id

四、Dockerfile文件

在创建新的镜像时都需要有一个Dockerfile文件(文件名一定要注意大小写),这个文件要与你的资源放在一起(例如你下载的jdk)

现在,以centos7为基础,构建oracle jdk8的镜像。

第一步:编写FROM语句(关键字一定要大写,例如FROM不能写小写)

第二步:通过ADD命令将压缩包传入镜像中的指定目录,并同时解压缩

第三步:设置环境变量(通过ENV关键字实现)

第四步:指定命令行操作

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’]

使用 Dockerfile 构建镜像(在Dockerfile所在目录执行)

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

运行镜像文件

docker run –it jdk:8 bash

进入容器以后,可以通过echo $PATH查看环境变量,并可以通过java –version查看JDK版本信息

镜像导出导入操作:

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

docker save  jdk:8 | gzip > jdk8.tar.gz

镜像导入(要在jdk8.tar.gz文件所在目录下执行):

docker load < jdk8.tar.gz

五、安装MySql数据库

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

1、也可以指定拉取版本,例如:

sudo docker pull mysql:8.0.23

2、启动运行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=密码 \
-d mysql:8.0.23

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

3、停止与开始

docker stop mysql
docker start mysql

4、进入容器 (退出容器用exit)

sudo docker exec -it mysql bash

5、登陆(默认密码root),一定要先进入mysql容器。

mysql -uroot -proot

6、设置mysql开机自启动(可选)

docker update mysql --restart=always

7、Windows中如何连接这个mysql?

第一步:在docker容器中登录mysql,创建mysql账户并为其设置权限(推荐手写,可能单引号有一定问题)

create user ‘tony’@’%’ identified by ‘tony’;
grant all on *.* to ‘tony’@‘%’

第二步:在window平台通过新创建用户连接mysql,例如,在命令行执行如下指令:

mysql  -utony –h192.168.174.130 -p

说明:假如连不上,则直接如下步骤,再尝试。

第一步:关闭linux宿主机的防火墙 (假如直击连接),命令忘了可以通过搜索引擎查。

sudo systemctl stop firewalld.service

第二步:重启docker

sudo systemctl restart docker

第三步:启动mysql

docker start mysql

六、安装redis

1、下载镜像

docker pull redis

2、创建redis实例并启动,创建redis配置文件目录

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

3、在配置文件录下创建redis.conf配置文件(因为redis镜像中这个redis.conf是一个目录所以要先创建一个这个配置文件,否在我们本地挂载点也会变成一个目录)

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

4、控制台直接连接redis测试

docker exec -it redis bash

5、检测redis 版本

Redis-server –v

# 或者

redis-cli -v

6、登录redis(默认不需要密码)

redis-cli

7、或者直接将上面的两个步骤合为一个步骤执行也可以,指令如下:

docker exec -it redis redis-cli

七、安装Ngnix代理

1、拉取ngnix镜像 (从这里hub.docker.com去查找)

docker pull nginx:latest

2、简单启动

docker run --name nginx -d nginx

检测安装的内容docker exec nginx ls -l /etc/nginx

3、拷贝安装好的配置文件

docker cp -a nginx:/etc/nginx /usr/local/docker/nginx

4、强制卸载刚刚安装的nginx

docker rm -f nginx

5、启动nginx容器,运行nginx镜像

sudo docker run -p 80:80 --restart always --name nginx \
-v /usr/local/docker/nginx/:/etc/nginx/ \
-v /usr/local/docker/nginx/conf.d:/etc/nginx/conf.d \
-d nginx

6、进行访问检测,如图所示:

八、安装Nacos组件

1、拉取nacos

docker pull nacos/nacos-server:2.0.1

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

执行方式1:直接在容器内部的mysql控制台执行

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

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

3)通过source指令运行宿主机中挂载目录下的sql文件

执行方式2:通过客户端(idea)工具连接远程mysql,然后在客户端工具中执行sql文件

3、创建nacos容器

docker run -d \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=ip \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=user \
-e MYSQL_SERVICE_PASSWORD=user \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-p 8848:8848 \
--name nacos \
--restart=always \
nacos/nacos-server:2.0.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 container logs nacos

其中,nacos的启动日志在/home/nacos/logs/start.out文件中。

5、测试,在浏览器中输入http://ip:8848/nacos

6、拷贝目录资源

docker cp -a nacos:/home/nacos /usr/local/docker/nacos
docker cp -a nacos:/home/nacos/data/ /usr/local/docker/nacos/data/
docker cp -a nacos:/home/nacos/log/ /usr/local/docker/nacos/log/

7、停止并删除nacos服务

docker stop nacos
docker rm nacos

8、修改nacos配置文件application.properties

直接将准备好的nacos配置文件application.properties,拷贝到

/usr/local/docker/conf目录,其连接数据的配置如下

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://ip:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&serverTimezone=Asia/Shanghai&characterEncoding=utf8
db.user.0=数据库账号
db.password.0=数据库密码

9、重新创建并启动nacos容器

docker run -d \
-e MODE=standalone \
-p 8848:8848 \
-v /usr/local/docker/nacos/conf:/home/nacos/conf \
-v /usr/local/docker/nacos/logs:/home/nacos/logs \
-v /usr/local/docker/nacos/data:/home/nacos/data \
--name nacos \
--restart=always \
nacos/nacos-server:2.0.1

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值