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\nsystemctl 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