Docker

2023-12-13 05:50:28

Docker

openEuler 在线安装 Docker

yum -y update
yum -y install tar vim net-tools zip unzip
yum -y install docker

Deepin UOS 在线安装 Docker

阿里脚本方式安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

手动方式安装

删除docker,如果有的话:

sudo apt-get -y remove docker docker-engine docker.io containerd runc

让apt支持https

sudo apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
 \apt-transport-https 
 \ca-certificates 
 \curl 
 \gnupg-agent 
 \software-properties-common

添加证书

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

添加源

sudo dedit /etc/apt/sources.list.d/docker.list

内容如下

deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian buster stable

备注:

  1. 不想或不熟悉命令行或碰上奇怪问题的朋友的请使用vim 编辑/etc/source.list文件
  2. 因为deepin v20是基于debian 10,代号为buster,所以使用其他版本的朋友请先查看自己系统对应的版本再对上面做修改

检查更新并下载

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

Ubuntu 在线 安装 Docker

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

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

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

开启docker 远程访问API

sudo vim /lib/systemd/system/docker.service
# 找到ExecStartExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H 
# 修改为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
# 保存退出。
sudo systemctl daemon-reload
sudo systemctl restart docker
curl http://ip:2375/version

安装Docker管理器 Portainer

sudo docker search portainer
sudo docker run -d -p 9999:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name portainer-test portainer/portainer
sudo docker run -d -p 9999:9000 --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--name portainer-test portainer/portainer-ce
sudo docker ps

docker 安装 nginx

# 查看本地镜像
sudo docker images
# 搜索远程镜像
sudo docker search nginx
# 下载远程镜像
sudo docker pull nginx
# 运行容器 --name 容器名称 -d 后台运行 -p 端口映射 平台端口:容器端口 镜像名称
sudo docker run --name nginx-test -d -p 80:80 nginx
# 查看正在运行的容器
sudo docker ps
# 关闭正在运行的容器
sudo docker stop nginx-test
# 查看所有容器 包括正在运行的容器和未运行的容器
sudo docker ps -a
# 启动关闭的容器
sudo docker start nginx-test
# 查看正在运行的容器
sudo docker ps
# 关闭正在运行的容器
sudo docker stop nginx-test
# 删除容器 该容器必须是未运行状态
sudo docker rm nginx-test
# 查看所有容器 包括正在运行的容器和未运行的容器
sudo docker ps -a
# 查看本地镜像
sudo docker images
# 删除本地镜像
sudo docker rmi nginx
# -d :分离模式: 在后台运行 
# -i :即使没有附加也保持STDIN 打开 
# -t :分配一个伪终端
# 通过 exec 命令对指定的容器执行 bash
sudo docker exec -it nginx-test /bin/bash
# 退出容器
exit
# 准备 nginx 容器与本地文件映射文件目录
# /home/lhz/nginx/html 存放网页文件
# /home/lhz/nginx/conf.d 存放配置文件
mkdir -p /home/lhz/nginx/html /home/lhz/nginx/conf.d
# docker cp:用于容器与主机之间的数据拷贝
# 从容器中拷贝文件到本地
sudo docker cp nginx-test:/usr/share/nginx/html /home/lhz/nginx
sudo docker cp nginx-test:/etc/nginx/conf.d/default.conf /home/lhz/nginx/conf.d
sudo docker cp nginx-test:/etc/nginx/nginx.conf /home/lhz/nginx
# 删除现有nginx容器
sudo docker stop nginx-test
sudo docker rm nginx-test
# 查看所有容器 包括正在运行的容器和未运行的容器
sudo docker ps -a
# 在 /home/lhz/nginx/html目录下准备自己的网页
# 创建新容器 使用本地文件映射
# -v 本地文件:容器中文件
# --restart=always
# --restart=always 表示容器退出时,docker会总是自动重启这个容器
# --restart=on-failure:3  
# 	表示容器的退出状态码非0(非正常退出),自动重启容器,3是自动重启的次数。超过3此则不重启
# --restart=no   默认值,容器退出时,docker不自动重启容器
# --restart=unless-stopped  表示容器退出时总是重启,但是不考虑docker守护进程运行时就已经停止的容器

sudo docker run -d -p 80:80 \
-v /home/lhz/nginx/html:/usr/share/nginx/html \
-v /home/lhz/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
-v /home/lhz/nginx/nginx.conf:/etc/nginx/nginx.conf \
--name nginx-test --restart=always nginx

docker 安装 mysql

# 映射数据库数据文件
mkdir -p /home/lhz/docker/mysql/{conf,data}

sudo docker search mysql
sudo docker pull mysql

sudo docker run --restart=always -p 3306:3306 -p 33060:33060 \
-v /home/lhz/docker/mysql/data:/var/lib/mysql \
--name mysql-test -e MYSQL_ROOT_PASSWORD=lihaozhe -d mysql

docker 安装 redis

mkdir -p /home/lhz/docker/redis/{conf,data}
cd /home/lhz/docker/redis/conf
wget https://raw.githubusercontent.com/antirez/redis/7.0/redis.conf
sudo docker run -d  -p 6379:6379 \
-v /home/lhz/apps/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /home/lhz/apps/redis/data:/data \
--name myredis redis redis-server \
/usr/local/etc/redis/redis.conf
方式一
sudo docker run -itd --name redis-6379 -p 6379:6379 redis --requirepass 123456
sudo docker run --restart=always --name redis-6379 -p 6379:6379 -d redis --requirepass 123456
--name (启动容器的名称) 
-p 映射端口:redis启动端口 redis 
--requirepass 启动密码
方法二

为现有的redis创建密码或修改密码的方法:

#1.进入redis的容器
docker exec -it 容器ID bash

#2.进入redis目录
cd /usr/local/bin

#3.运行命令:
redis-cli

#4.查看现有的redis密码:
config get requirepass

#5.设置redis密码
config set requirepass 密码

docker 安装 蚂蚁笔记

sudo docker volume create leanote_data
sudo docker pull axboy/leanote

sudo docker run -d --restart=always --name leanote  \
-v `pwd`/db:/data/db  -v `pwd`/conf/:/data/leanote/conf \
-p 2022:9000  axboy/leanote

docker安装minio

1、查看minio的docker版本
使用docker命令查看minio的版本
sudo docker search minio

2、拉取镜像
sudo docker pull minio/minio

3、创建目录:一个用来存放配置,一个用来存储上传文件的目录
sudo mkdir -p /data/minio/config
sudo mkdir -p /data/minio/data


4、运行容器
sudo docker run -p 9000:9000 -p 9090:9090 \
 --net=host \
 --name minio-test \
 -d --restart=always \
 -e "MINIO_ACCESS_KEY=minioadmin" \
 -e "MINIO_SECRET_KEY=minioadmin" \
 -v /data/minio/data:/data \
 -v /data/minio/config:/root/.minio \
 minio/minio server \
 /data --console-address ":9090" -address ":9000"
 
这里的9090端口指的是minio的客户端端口。虽然设置9090,但是我们在访问9000的时候,他会自动跳到9090。
MINIO_ACCESS_KEY :账号
MINIO_SECRET_KEY :密码

5、防火墙放行端口
firewall-cmd --zone=public --add-port=9000/tcp --add-port=9090/tcp --permanent
firewall-cmd --reload 


6、访问查看
http://IP:9090

springboot docker

vim /lib/systemd/system/docker.service
# 找到ExecStartExecStart=/usr/bin/dockerd $OPTIONS \
                           $DOCKER_STORAGE_OPTIONS \
                           $DOCKER_NETWORK_OPTIONS \
                           $INSECURE_REGISTRY

# 修改为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
# 保存退出。

systemctl daemon-reload
systemctl restart docker

firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload 

curl http://ip:2375/version
curl http://ip:2375/images/json

dockerfile

FROM openjdk:21
MAINTAINER 李昊哲<646269678@qq.com>
EXPOSE 6633
ADD target/hellodocker.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

Docker创建FTP服务器
一.创建命令如下

docker run -d -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -v /opt/vsftpd/file:/home/vsftpd -e FTP_USER=lihaozhe -e FTP_PASS=lihaozhe   -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 -e PASV_ADDRESS=192.168.95.21 -e PASV_ENABLE=YES --name ftp --restart=always --privileged=true fauria/vsftpd

二.命令含义

参数含义
-d后台启动容器
-p 20:20将外部的20端口映射到内部的20端口
-p 21:21将外部的21端口映射到内部的21端口
-p 21100-21110:21100-21110将外部的 21100-21110端口映射到内部的21100-21110端口
-v /opt/vsftpd/file:/home/vsftpd将本地磁盘的 /opt/vsftpd/file路径映射到内部的/home/vsftpd路径
-e FTP_USER=lihaozheftp的主用户
-e FTP_PASS=lihaozheftp主用户的密码
-e PASV_MIN_PORT=21100最小被动端口
-e PASV_MAX_PORT=21110最大被动端口
-e PASV_ADDRESS=192.168.95.21指定本机的ip
-e PASV_ENABLE=YES启动被动模式
–name ftp取一个名字,之后可以用(docker stop 名字 )来停止容器
–restart=always开机自启动
–privileged=true容器内用户获取root权限
fauria/vsftpd仓库的镜像

dockerfile 构建 tomcat 镜像

FROM centos:7

MAINTAINER  lihaozhe<646269678@qq.com>

RUN yum -y install vim tar net-tools

ADD jdk-8u391-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.83.tar.gz /usr/local

ENV JAVA_HOME /usr/local/jdk1.8.0_391

ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.83
ENV CATALINA_BASE $CATALINA_HOME
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
ENV TZ="Asia/Shanghai"

EXPOSE 8080

CMD /usr/local/apache-tomcat-9.0.83/bin/startup.sh

sudo docker build -t tomcat9 .
sudo docker run --name my_tomcat -p 8080:8080 -d tomcat9

docker 安装 oracle19c

  1. 拉取镜像

    sudo docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
    
  2. 创建挂载目录

    sudo mkdir -p /mydata/oracle/oradata
    
  3. 授权

    sudo chmod 777 /mydata/oracle/oradata
    
  4. 安装

    sudo docker run -d  \
    -p 1521:1521 -p 5500:5500 \
    -e ORACLE_SID=ORCL \
    -e ORACLE_PDB=ORCLPDB \
    -e ORACLE_PWD=orcl \
    -e ORACLE_EDITION=standard \
    -e ORACLE_CHARACTERSET=ZHS16GBK \
    -v /mydata/oracle/oradata:/opt/oracle/oradata \
    --name oracle19c \
    registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
    

    或者讲字符集修改为 AL32UTF8

    sudo docker run -d  \
    -p 1521:1521 -p 5500:5500 \
    -e ORACLE_SID=ORCL \
    -e ORACLE_PDB=ORCLPDB \
    -e ORACLE_PWD=orcl \
    -e ORACLE_EDITION=standard \
    -e ORACLE_CHARACTERSET=ZHS16GBK \
    -v /mydata/oracle/oradata:/opt/oracle/oradata \
    --name oracle19c \
    registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
    

    安装过程中可以通过日志监控安装情况

    sudo docker logs -ft oracle19c
    

    docker安装oracle容器过程日志

  5. 连接 Oracle 数据库

    1. 打开容器终端

      sudo docker exec -it oracle19c /bin/bash
      
    2. sqlplus登录 sysdba身份登录,默认进入CDB

      sqlplus / as sysdba
      
    3. 进入CDB

      sqlplus system/orcl@localhost:1521/orcl
      
    4. 进入PDB

      sqlplus pdbadmin/orcl@localhost:1521/orclpdb
      
    5. 查看连接模式

      show con_name
      

      连接oracle数据库

  6. 网页登录

    https://ip:5500/em

    Oracle

    Oracle

    Oracle

  7. sqldeveloper

    Oracle SQL Developer Downloads

    sqldeveloper连接oracle

    1. 测试中文是否乱码

      select '中文' from dual
      
    2. 出现乱码就编辑客户端环境变量

      NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
      或者
      NLS_LANG=AMERICAN_AMERICA.AL32UTF8

      Oracle中文乱码

文章来源:https://blog.csdn.net/qq_24330181/article/details/134850126
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。