1. Ubuntu中安装docker
sudo apt-get update
sudo apt-get install docker-io
1.1 CentOS7中安装docker
安装docker
yum -y install docker-io
yum list installed | grep docker
启动docker
systemctl restart docker
2. 基于基础镜像Ubuntu制作新镜像
1)下拉基础镜像Ubuntu
docker pull <镜像名称> 如: docker pull ubuntu
2)运行交互式容器
docker run (--name=容器名称,自定义) -it 镜像名 /bin/bash
注意: 如果启动报如下的错误,解决办法如下所示:
错误提示: [root@izj6c0zsm04q86s2tu4e12z /]# docker run -it docker.io/ubuntu:latest /bin/bash
/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:235: starting container process caused "process_linux.go:258: applying cgroup configuration for process caused \"Cannot set property TasksAccounting, or unknown property.\"".
解决办法: yum update
3)如果已退出容器,则使用exec参数进行容器,安装相关py库(pip install -r xxx.txt)
docker exec -it 容器名或者容器的id /bin/bash
4)将安装好插件的容器编译好镜像并上传镜像
docker commit -a 作者 -m '注解' 容器名 镜像名:镜像版本号
docker push 镜像名:镜像版本号
3. 容器基本操作
1)查看运行中的容器
docker ps
2)查看建立的容器
docker ps -a 或者 -l
3)停止守护式容器]()
docker stop 容器id/容器名(停止容器,需要等容器处理完逻辑才停止)
docker kill 容器id/容器名(直接停止容器)
4)重新启动停止的容器
docker start 容器id/容器名
5)删除容器
docker rm 容器id/容器名
6)退出容器但不关闭容器
control+p+q键一起按
7)查看镜像
docker images
8)删除镜像
docker rmi 镜像id/镜像名
docker学习网站
http://www.docker.org.cn/
容器常用的操作命令
docker ps
docker ps -a
docker run -it 镜像 /bin/bash
ctrl + p + q
docker -stop
docker -rm 容器id
docker -rmi 镜像
容器安装环境
apt update
apt install python3
apt install python3-pip
apt install vim
apt install git
apt install net-tools
docker commit -a 作者 -m '注解' 容器id 镜像名:镜像版本号
docker run -itdp 8080:5000 blog:v1 /bin/bash
docker 私服搭建
docker pull registery
第一种:
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry_new registry:latest
第二种(简单的)
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 docker.io/registry
创建镜像
docker run -it --name='blogv2' blog:v1 /bin/bash
docker commit -a Roctey -m '基础2blog' 容器id 地址:端口/blogbase:v1
上传镜像
修改/etc/docker/daemon.json中的内容,添加镜像仓库地址insecure-registries参数
{
"registry-mirrors":["https://registry.docker-cn.com"],
"insecure-registries":["47.240.32.247:5000"]
}
docker push 地址:端口/blogbase:v1
拉镜像
# 在home目录下创建文件夹
touth Dockerfile
# 写文件
FROM 47.240.32.247:5000/blogbase:v1
ADD ./BlogPro /home/BlogPro
WORKDIR /home/BlogPro
ENTRYPOINT ["python3"]
CMD ]["manage.py", "runserver", "0.0.0.0:8000"] #django
CMD ]["manage.py", "runserver","-h", "0.0.0.0","-p", "8000"] #flask
# 创建容器
docker build -t blognew
解决docker容器中文乱码,修改docker容器编码格式
查看配置文件均已经设置成了UTF-8
查看docker容器编码格式: 执行locale
命令,可以看到当前编码格式为POSIX,而这种编码格式不支持中文.
locale -a查看容器所有语言环境
C.UTF-8可以支持中文,只需要把容器编码设置为C.UTF-8即可
1.临时修改:
locale
locale -a
LANG=C.UTF-8 (有的是zh_CN.UTF-8,不过我在本地没发现这种编码)
export LC_ALL=C.UTF-8
source /etc/profile
2.永久修改:修改Dockerfile
在Dockerfile中添加一行
ENV LANG C.UTF-8
重新制作docker镜像,docker run -ti [镜像] 进入容器后执行locale发现编码格式已经被修改为C.UTF-8,之前出现的中文文件名乱码问题也没有了。