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
啟動(dòng)docker
systemctl restart docker
2. 基于基礎(chǔ)鏡像Ubuntu制作新鏡像
1)下拉基礎(chǔ)鏡像Ubuntu
docker pull <鏡像名稱> 如: docker pull ubuntu
2)運(yùn)行交互式容器
docker run (--name=容器名稱,自定義) -it 鏡像名 /bin/bash
注意: 如果啟動(dòng)報(bào)如下的錯(cuò)誤,解決辦法如下所示:
錯(cuò)誤提示: [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參數(shù)進(jìn)行容器,安裝相關(guān)py庫(kù)(pip install -r xxx.txt)
docker exec -it 容器名或者容器的id /bin/bash
4)將安裝好插件的容器編譯好鏡像并上傳鏡像
docker commit -a 作者 -m '注解' 容器名 鏡像名:鏡像版本號(hào)
docker push 鏡像名:鏡像版本號(hào)
3. 容器基本操作
1)查看運(yùn)行中的容器
docker ps
2)查看建立的容器
docker ps -a 或者 -l
3)停止守護(hù)式容器]()
docker stop 容器id/容器名(停止容器,需要等容器處理完邏輯才停止)
docker kill 容器id/容器名(直接停止容器)
4)重新啟動(dòng)停止的容器
docker start 容器id/容器名
5)刪除容器
docker rm 容器id/容器名
6)退出容器但不關(guān)閉容器
control+p+q鍵一起按
7)查看鏡像
docker images
8)刪除鏡像
docker rmi 鏡像id/鏡像名
docker學(xué)習(xí)網(wǎng)站
容器常用的操作命令
docker ps
docker ps -a
docker run -it 鏡像 /bin/bash
ctrl + p + q
docker -stop
docker -rm 容器id
docker -rmi 鏡像
容器安裝環(huán)境
apt update
apt install python3
apt install python3-pip
apt install vim
apt install git
apt install net-tools
docker commit -a 作者 -m '注解' 容器id 鏡像名:鏡像版本號(hào)
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
第二種(簡(jiǎn)單的)
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 docker.io/registry
創(chuàng)建鏡像
docker run -it --name='blogv2' blog:v1 /bin/bash
docker commit -a Roctey -m '基礎(chǔ)2blog' 容器id 地址:端口/blogbase:v1
上傳鏡像
修改/etc/docker/daemon.json中的內(nèi)容,添加鏡像倉(cāng)庫(kù)地址insecure-registries參數(shù)
{
"registry-mirrors":["https://registry.docker-cn.com"],
"insecure-registries":["47.240.32.247:5000"]
}
docker push 地址:端口/blogbase:v1
拉鏡像
# 在home目錄下創(chuàng)建文件夾
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
# 創(chuàng)建容器
docker build -t blognew
解決docker容器中文亂碼,修改docker容器編碼格式
查看配置文件均已經(jīng)設(shè)置成了UTF-8
查看docker容器編碼格式: 執(zhí)行locale命令,可以看到當(dāng)前編碼格式為POSIX,而這種編碼格式不支持中文.
locale -a查看容器所有語(yǔ)言環(huán)境
C.UTF-8可以支持中文,只需要把容器編碼設(shè)置為C.UTF-8即可
1.臨時(shí)修改:
? locale
? locale -a
? LANG=C.UTF-8 (有的是zh_CN.UTF-8,不過我在本地沒發(fā)現(xiàn)這種編碼)
export LC_ALL=C.UTF-8
source /etc/profile
2.永久修改:修改Dockerfile
在Dockerfile中添加一行
ENV LANG C.UTF-8
重新制作docker鏡像,docker run -ti [鏡像] 進(jìn)入容器后執(zhí)行l(wèi)ocale發(fā)現(xiàn)編碼格式已經(jīng)被修改為C.UTF-8,之前出現(xiàn)的中文文件名亂碼問題也沒有了。