Ubuntu Docker 使用官方安装脚本自动安装:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
—————————————————————————————————————————————
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
—————————————————————————————————————————————
卸载旧版本
Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们:
sudo apt-get remove docker docker-engine docker.io containerd runc
—————————————————————————————————————————————
网上拉取镜像:(第一次安装无本地image)
sudo docker pull ubuntu:18.04
root@ecs-fxbzf:~# sudo docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
284055322776: Pull complete
Digest: sha256:0fedbd5bd9fb72089c7bbca476949e10593cebed9b1fb9edf5b79dbbacddd7d6
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04
—————————————————————————————————————————————
本地导入镜像:(如果有自己的image)
导入文件:
假设镜像文件【tndl-img:v1.tar】在root/zyklbr/目录需要cd进入当前目录操作 【cd zyklbr】
sudo cat tndl-img:v1.tar | sudo docker import - tndl-img:v1
root@ecs-fxbzf:~# cd zyklbr
root@ecs-fxbzf:~/zyklbr# sudo cat tndl-img:v1.tar | sudo docker import – tndl-img:v1
sha256:f20e182f46196c9914eba2335813b3ac4ea6dcf38d38b1228ee6c8315342f5c6
—————————————————————————————————————————————
查看镜像:
sudo docker images
root@ecs-fxbzf:~/zyklbr# sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tndl-img v1 f20e182f4619 51 seconds ago 303MB
查看所有容器:
sudo docker ps -a
root@ecs-fxbzf:~/zyklbr# sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
查看正在运行的容器:
sudo docker ps
root@ecs-fxbzf:~/zyklbr# sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
—————————————————————————————————————————————
用镜像生成一个容器:
先尝试使用
sudo docker run -dit --name=tndl-con -p 2200:22 -p 80:80 -p 443:443 tndl-img:v1 /bin/bash
如遇到权限不够可使用这条
sudo docker run -dit --privileged=true --name tndl-con -p 2200:22 -p 80:80 -p 443:443 tndl-img:v1 /sbin/init
root@ecs-fxbzf:~/zyklbr# sudo docker run -itd –privileged=true –name tndl-con -p 2200:22 -p 80:80 -p 443:443 tndl-img:v1 /sbin/init
f0265ce7e938ba57640ea0a059c632951526b1d31ced34b6b5a0c017e38066a8
docker宿主机通过top查看进程,发现有agetty进程100%占用CPU资源,这是【–privileged=true /sbin/init】命令导致的,正常开启后,可以停止agetty进程解除cpu的高占用:
在宿主机以及Container中运行下述命令
systemctl stop getty@tty1.service
systemctl mask getty@tty1.service
—————————————————————————————————————————————
查看容器运行情况:
sudo docker ps
root@ecs-fxbzf:~/zyklbr# sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f0265ce7e938 tndl-img:v1 “/sbin/init” 4 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:2200->22/tcp, :::2200->22/tcp tndl-con
—————————————————————————————————————————————
停止容器:
sudo docker stop tndl-con
root@ecs-fxbzf:~/zyklbr# sudo docker stop tndl-con
tndl-con
—————————————————————————————————————————————
重启容器:
sudo docker restart tndl-con
root@ecs-fxbzf:~/zyklbr# sudo docker restart tndl-con
tndl-con
—————————————————————————————————————————————
删除容器(container):
sudo docker rm -f tndl-con
root@ecs-fxbzf:~/zyklbr# sudo docker rm -f tndl-con
tndl-con
—————————————————————————————————————————————
删除镜像(image):
sudo docker rmi tndl-img:v1
root@ecs-fxbzf:~/zyklbr# sudo docker rmi tndl-img:v1
Untagged: tndl-img:v1
Deleted: sha256:f20e182f46196c9914eba2335813b3ac4ea6dcf38d38b1228ee6c8315342f5c6
Deleted: sha256:948b309949ba2f57a5814c3217a49ed4d9fec542fab3b894fda0d5d18a05102c
root@ecs-fxbzf:~/zyklbr#
—————————————————————————————————————————————
进入容器(补充以前的笔记):
sudo docker restart e4a777571d87
sudo docker attach e4a777571d87
root@pc:/# sudo docker attach e4a777571d87
root@e4a777571d87:/#
退出ubuntu容器(程序也会停止):
exit
sudo docker ps
root@pc:/# sudo docker attach e4a777571d87
root@e4a777571d87:/# exit
exit
root@pc:/# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@pc:/#
启动的容器exit退出也不会停止程序:
sudo docker restart e4a777571d87
sudo docker exec -it e4a777571d87 /bin/bash
exit
sudo docker ps
root@pc:/# sudo docker restart e4a777571d87
e4a777571d87
root@pc:/# sudo docker exec -it e4a777571d87 /bin/bash
root@e4a777571d87:/# exit
exit
root@pc:/#
root@pc:/# sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e4a777571d87 4eb “/bin/bash” 38 minutes ago Up About a minute zyklbr
root@pc:/#
保存容器的修改
容器需要运行中,后台运行也可。
docker commit e4a777571d87 demo:v1.1
导出容器镜像:
导出文件:
mkdir zyklbr
cd zyklbr
sudo docker export e4a777571d87 > ubuntu.tar
root@pc:/# mkdir zyklbr
root@pc:/# cd zyklbr
root@pc:/zyklbr# sudo docker export e4a777571d87 > ubuntu.tar
root@pc:/zyklbr# ls
ubuntu.tar
root@pc:/zyklbr#