创建docker容器-并使用SSH连接容器

docker容器启动后修改或添加端口_docker修改容器端口-CSDN博客

容器基本操作

#启动docker
systemctl start docker
#关闭docker
systemctl stop docker
#重启docker
systemctl restart docker
#停止容器
docker stop 容器名称
#启动容器
docker start 容器名称
#进入容器
docker exec -it 容器名称 /bin/bash
#删除容器
docker rm 容器名称
#删除镜像
docker rmi 镜像ID

SSH连接容器

在创建容器的时候给ssh连接做端口映射
6666映射的端口(外部端口,这个可以自己改) 22是容器内的默认SSH端口
PORT_A="-p 6666:22"
宿主机 ip 或域名 映射端口 账号 root 密码就是你在容器设置的密码

安装docker

复制代码保存 Docker-ALL.sh  在宿主机执行安装 docker ,安装好以后会重启电脑

#-------------------
# 适合以下系统
# Mint centos ubuntu deepin
#-------------------
mkdir -p $HOME/DOCKER_RUN_LOCK
DOCKER_RUN_LOCK="$HOME/DOCKER_RUN_LOCK"
echo "安装相关依赖&以及Docker"
#-------------------
# Mint Linux发行版
#-------------------
Mint_123(){
if [ ! -f "${DOCKER_RUN_LOCK}/.i8520_0" ];then
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(. /etc/os-release; echo "$UBUNTU_CODENAME") stable"
echo "" > /tmp/daemon.json
sudo mv /tmp/daemon.json /etc/docker
echo "{"registry-mirrors": ["http://hub-mirror.c.163.com"]}" | sudo tee -a /etc/docker/daemon.json
sudo apt-get update
sudo apt-get install docker docker-compose -y
#管理员权限启动容器(用户权限)
sudo usermod -aG docker $USER
sudo systemctl daemon-reload
sudo systemctl restart docker
docker -v

   echo "" > ${DOCKER_RUN_LOCK}/.i8520_0
   reboot
else
   echo "你已经安装过相关依赖&以及Docker"
fi
}
#-------------------
# Deepin Linux发行版
#-------------------
Deepin_123(){
if [ ! -f "${DOCKER_RUN_LOCK}/.i8520_0" ];then
sudo apt-get update
echo "" > /tmp/daemon.json
sudo mv /tmp/daemon.json /etc/docker
echo "{"registry-mirrors": ["http://hub-mirror.c.163.com"]}" | sudo tee -a /etc/docker/daemon.json
sudo apt-get install docker docker-compose -y
#管理员权限启动容器(用户权限)
sudo usermod -aG docker $USER
sudo systemctl daemon-reload
sudo systemctl restart docker
docker -v
   echo "" > ${DOCKER_RUN_LOCK}/.i8520_0
   reboot
else
   echo "你已经安装过相关依赖&以及Docker"
fi
}
#-------------------
# 判断Linux发行版
#-------------------
#cat /etc/os-release 第一显示的就是系统名称
abcde_a="NAME="Linux Mint""
abcde_b="NAME="CentOS Linux""
#显示第一行
osMY=`cat /etc/os-release | sed -n 1p`
if [[ ! X${abcde_a} = X${osMY} ]];then
   if [[ ! X${abcde_b} = X${osMY} ]];then
      echo "${osMY}"
      Deepin_123
   else
      if [ ! -f "/etc/profile.d/.i8520_0" ]
        then
        echo "${osMY}"
        #关闭防火墙
        systemctl stop firewalld
        systemctl disable firewalld
        #安装 zip 7z 
        yum -y install zip unzip 
        yum -y install epel-release 
        yum -y install p7zip p7zip-plugins
        yum install -y cockpit* 
        #添加仓库
        yum install -y yum-utils device-mapper-persistent-data lvm2
        #添加清华源
        yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
        #安装 docker
        cho "" > /etc/docker/daemon.json
        echo "{"registry-mirrors": ["http://hub-mirror.c.163.com"]}" | tee -a /etc/docker/daemon.json
        yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
        #启动守护进程
        systemctl daemon-reload
        systemctl restart docker
        systemctl start docker
        systemctl_start_docker="#!/bin/bash
systemctl start docker"
        echo -e ${systemctl_start_docker} >/etc/profile.d/systemctl_start_docker.sh
        chmod -R 755  /etc/profile.d/systemctl_start_docker.sh
        echo "" > /etc/profile.d/.i8520_0
      fi
   fi
else
echo "${osMY}"
Mint_123

fi

创建 docker 的 centos 容器

复制代码保存 run_docker_centos.sh 看脚本注释使用

#!/bin/bash
#查看已安装镜像
docker images > /tmp/docker_images_log.txt
MY_LOG="/tmp/docker_images_log.txt"
#-------------------------------
#        centos7.9.2009
#-------------------------------
#查看是否有此镜像
MY_IMG_NAME_A="centos:7.9.2009"
Determine_A=`cat $MY_LOG | grep "$MY_IMG_NAME_A" | wc -l`
#-------------------------------
#        centos7.7.1908
#-------------------------------
MY_IMG_NAME_B="centos:7.7.1908"
Determine_B=`cat $MY_LOG | grep "$MY_IMG_NAME_B" | wc -l`
#-------------------------------
#  创建容器,主要修改这里按提示修改
#-------------------------------
centos_centos7_9(){
#在宿主机根目录创建123共享文件夹
DOCKER_RUN_LOCK="/123"
mkdir -p ${DOCKER_RUN_LOCK}
#主要修改这里按提示修改
#---容器名字-------------------------------
CONTAINER_NAME="mhzxsr"
#---镜像名称------------------------------
REPOSITORY_TAG_NAME="centos:centos7.9.2009"
#---提升权限------------------------------
xx_init='/usr/sbin/init'
MY_ROM="-m 3g --memory-swap -1"
#---映射端口------------------------------
PORT_A="-p 18598:18598 -p 18605:18605 -p 30002:30002 -p 30011:30011 -p 1314:1314 -p 1315:1315 -p 1316:1316 -p 1317:22"
#映射共享目录
M_PATH="${DOCKER_RUN_LOCK}:/i8520"
#---创建容器------------------------------
docker run -d ${MY_ROM} --name ${CONTAINER_NAME} ${PORT_A} --privileged=true -v ${M_PATH} ${REPOSITORY_TAG_NAME} ${xx_init}
}
#==================================================================================================================
centos_centos7_7(){
#在宿主机根目录创建123共享文件夹
DOCKER_RUN_LOCK="$HOME/123"
mkdir -p ${DOCKER_RUN_LOCK}
#主要修改这里按提示修改
#---容器名字-------------------------------
CONTAINER_NAME="mhzxsr"
#---镜像名称------------------------------
REPOSITORY_TAG_NAME="centos:centos7.7.1908"
#---提升权限------------------------------
xx_init='/usr/sbin/init'
#---映射端口------------------------------
PORT_A="-p 1315:1315 -p 1316:1316 -p 1317:22"
#映射共享目录
M_PATH="${DOCKER_RUN_LOCK}:/i8520"
#---创建容器------------------------------
docker run -d --name ${CONTAINER_NAME} ${PORT_A} --privileged=true -v ${M_PATH} ${REPOSITORY_TAG_NAME} ${xx_init}
}
#-------------------------------
#     判断是否安装了以下镜像
#     centos7.9.2009
#     centos7.7.1908
#-------------------------------
Used_for_judgment="0"
#优先使用 centos7.9.2009
if [ ! x${Used_for_judgment} = x${Determine_A} ];then
   echo "你已经安装了${MY_IMG_NAME_A}镜像,正在为你穿件容器......"
   centos_centos7_9

else
       #如果没有centos7.9.2009就使用centos7.7.1908
       if [ ! x${Used_for_judgment} = x${Determine_B} ];then
           echo "你已经安装了${MY_IMG_NAME_B}镜像,正在为你穿件容器......"
           centos_centos7_7
           
       else
           #如果两都没有就下载镜像并创建容器
           echo "你没有拉取任何centos版本的镜像,正在为你拉取${MY_IMG_NAME_A} ${MY_IMG_NAME_B}"
           # docker pull almalinux:8.8
           docker pull centos:centos7.7.1908
           sleep 2
           docker pull centos:centos7.9.2009
           echo ""
           echo ""
           echo "镜像已下载!正在为你创建容器......"
           #用哪个本版的镜像就把井号去掉
           #centos_centos7_9
           #centos_centos7_7
           
       fi
fi

docker 的centos容器 安装ssh 使用SSH远程连centos容器

非一键脚本需要在容器中使用

yum update -y
yum upgrade -y
yum install passwd openssl openssh-server -y
yum install initscripts -y
编辑/etc/ssh/sshd_config
Port 22
AddressFamily any
ListenAddress 0.0.0.0
PermitRootLogin yes
PermitEmptyPasswords yes
PasswordAuthentication  yes
#重启ssh
service sshd restart
#启动ssh
systemctl start sshd.service
#开机启动
systemctl enable sshd.service
#设置容器root密码
passwd root

创建 docker 的 ubuntu 容器

非一键端脚本 需要在宿主机一条一条命令输入

#创建宿主机目录创建123文件夹作为容器的共享目录
DOCKER_RUN_LOCK="/123"
mkdir -p ${DOCKER_RUN_LOCK}
#主要修改这里按提示修改
#---容器名字-------------------------------
CONTAINER_NAME="kdjxsr"
#---镜像名称------------------------------
#ubuntu:20.04
#ubuntu:22.04
REPOSITORY_TAG_NAME="ubuntu:20.04"
#---映射端口------------------------------
PORT_A="-p 1318:22 -p 1319:1319"
M_PATH="${DOCKER_RUN_LOCK}:/i8520"
#---创建容器------------------------------
docker run -i -t -d --name ${CONTAINER_NAME} ${PORT_A} --privileged=true -v ${M_PATH} ${REPOSITORY_TAG_NAME}
#启动容器 wubantu是容器名称
docker start wubantu
#进入容器
docker exec -it jlbkmsr /bin/bash

进入ubuntu容器要安装的 手工操作

#进入容器要安装的
#更新系统
apt update  
apt upgrade
apt-get install sudo
apt-get update && apt-get install -y init && apt-get clean all
apt install libc-ares2
#安装ssh
sudo apt install -y openssh-server language-pack-zh-hans ibus-pinyin
#安装 vim编辑器
sudo apt-get install vim
#配置ssh
vim /etc/ssh/sshd_config
#修改这些
Port 22
AddressFamily any
ListenAddress 0.0.0.0
PermitRootLogin yes
PermitEmptyPasswords yes
PasswordAuthentication  yes
#修改以后保存
#重启ssh
service ssh restart
#sudo service ssh restart
#配置 root 密码
passwd root
#---------------------------------
#下面不是必须的
#创建管理员账户 ubuntu
sudo useradd -m ubuntu -s /bin/bash
#设置 ubuntu用户密码
sudo passwd ubuntu
#设置 ubuntu 用户为管理员
sudo adduser ubuntu sudo
#进入ubuntu用户命令行
su ubuntu

下面的可以不用看

docker pull rockylinux:8.6.20227707

podman 容器 使用

百度安全验证

sudo apt update && sudo apt install -y podman

sudo apt install cockpit cockpit-podman cockpit-machines

sudo systemctl start cockpit

centos 安装 podman

CentOS7安装Cockpit网页版图像化服务管理工具-CSDN博客

CentOS7安装Cockpit网页版图像化服务管理工具-CSDN博客

yum -y install podman

yum install -y cockpit* 

启动服务;

# systemctl start cockpit
# systemctl enable cockpit.socket
Created symlink from /etc/systemd/system/sockets.target.wants/cockpit.socket to /usr/lib/systemd/system/cockpit.socket.

启动后,直接访问:  ip:9090即可访问网页。默认开启的是9090端口,若要变更端口,则

vim /usr/lib/systemd/system/cockpit.socket
 
修改ListenStream对应的端口即可
 
[Unit]
Description=Cockpit Web Service Socket
Documentation=man:cockpit-ws(8)
Wants=cockpit-motd.service
 
[Socket]
ListenStream=8990
ExecStartPost=-/usr/share/cockpit/motd/update-motd '' localhost
ExecStartPost=-/bin/ln -snf active.motd /run/cockpit/motd
ExecStopPost=-/bin/ln -snf /usr/share/cockpit/motd/inactive.motd /run/cockpit/motd
 
[Install]
WantedBy=sockets.target

systemctl enable --now cockpit.socket