记录docker从安装到构建镜像的旅程
安装docker
环境
我的是ubuntu20.4 last版本,在网上查了很多资料,爬了很多坑。
安装与卸载
移除旧版本docker如果有的话
sudo apt-get remove docker docker-engine docker.io containerd runc
执行安装
执行更新
sudo apt-get update
执行安装
sudo apt-get install
apt-transport-https
ca-certificates
curl
gnupg-agent
software-properties-common
增加GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
设置稳定版本仓库
使用以下指令设置稳定版仓库
sudo add-apt-repository
“deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable”
免sudo
查看用户组及成员
sudo cat /etc/group | grep docker
可以添加docker组
sudo groupadd docker
添加用户到docker组
sudo gpasswd -a ${USER} docker
增加读写权限
sudo chmod a+rw /var/run/docker.sock
重启docker
sudo service docker restart
切换当前会话到新 group 或者重启 X 会话
newgrp - docker
卸载
sudo apt-get remove docker docker-engine docker-ce docker.io
使用阿里镜像加速
创建或者修改daemon配置文件/etc/docker/daemon.json来使用加速器
{
“registry-mirrors”: [“https://tvvsxjk6.mirror.aliyuncs.com”]
}
重启
sudo systemctl daemon-reload
sudo systemctl restart docker
拉取ubuntu镜像
拉取镜像
docker pull ubuntu
运行容器
docker run -itd --name ubuntu-test ubuntu
映射SSH端口
docker run --name iubuntu -itd -p 3316:22 ubuntu
参数: –name 指定生成的容器的名称
-i: 以交互模式运行容器,保证容器中STDIN是开启的。通常与 -t 同时使用;
-t: 为容器重新分配一个伪tty终端,通常与 -i 同时使用;
-d: 后台运行容器,并返回容器ID;
-p:可以指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器。
支持的格式有 hostPort:containerPort、ip:hostPort:containerPort、 ip::containerPort。
ubuntu 则是镜像名称,镜像ID也可以的
再次进入
docker exec -it ubuntu-test bash
安装SSH
apt-get update
apt-get install openssh-server
这一步是在安装dpkg填写时如果需要配置地域,重启容器后操作的,可以不操作
dpkg --configure -a
安装编辑器
apt-get install vim
配置ssh
vim /etc/ssh/sshd_config
/------
#PermitRootLogin prohibit-password
PermitRootLogin yes
-------/
重启服务
service ssh restart
设置root密码
passwd root
安装jdk1.8
用工具上传jdk-linux安装文件
解压并配置
将解压后的文件夹移到/usr/local目录下
#cd /root/
sudo tar –zxvf jdk-8u181-linux-x64.tar.gz
mkdir env
mv jdk1.8.0_181 env/
vim /etc/profile 在最后添加以下内容
//
#set java env
export JAVA_HOME=/root/env/jdk1.8.0_181
export JRE_HOME=
J
A
V
A
H
O
M
E
/
j
r
e
e
x
p
o
r
t
C
L
A
S
S
P
A
T
H
=
.
:
{JAVA_HOME}/jre export CLASSPATH=.:
JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib:
J
R
E
H
O
M
E
/
l
i
b
e
x
p
o
r
t
P
A
T
H
=
{JRE_HOME}/lib export PATH=
JREHOME/libexportPATH={JAVA_HOME}/bin:$PATH
///
刷新配置
source /etc/profile
测试
java -version
容器的备份,生成备份镜像
docker commit -p [容器ID] [镜像名称]
ps: docker commit -p 30b8f18f20b4 container-backup
打包本地镜像,与恢复
使用命令查看本地镜像ID
docker images
保存镜像为文件
docker save [ID] > /路径/名称.tar
ps: docker save 30b8f18f20b4 > /root/backup/container-backup.tar
从镜像备份文件创建镜像
docker load < /路径/名称.tar
ps: docker load < /root/backup/container-backup.tar
镜像的删除
docker rm 容器ID
docker rmi 镜像ID
修改运行容器的映射端口
编辑配置文件
/var/lib/docker/containers/[容器ID]/hostconfig.json
重启容器
systemctl restart docker