当前位置:   article > 正文

Docker学习笔记_sudo apt-get install docker-ce docker-ce-cli conta

sudo apt-get install docker-ce docker-ce-cli containerd.io包列表完成正正正有

Docker学习笔记

 经常地在本地运行一个应用,忽然想要将本地应用迁移到云上,这样无论何时何地都可以享受到它的功能;
 先前搭建blog时,时常遇到一些概念,比如容器,镜像,部署等,通过不断了解,才接触到docker;
 在学习中,经常会由于学习需要搭建不同地环境,而不同的环境配置间往往会出现冲突,如果在另一台设备上运行同样的程序,可能光配置环境就需要几天,非常不方便,因此了解了docker后,发现它比较值得学习的;
 给出一个b站教学,建议参考官方文档

 接下来,就以ubuntu20.04操作系统为例展示

docker环境配置

  1. 更新包索引,允许从仓库中安装包
sudo apt update
  • 1
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

  1. 添加软件源,添加GPG密钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
  • 1
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

  1. 安装docker引擎
sudo apt-get update
  • 1
sudo apt-get install docker-ce docker-ce-cli containerd.io
  • 1

在这里插入图片描述

  1. 检验是否成功安装docker

运行以下命令,出现红色框内的提示即成功

sudo docker run hello-world
  • 1

在这里插入图片描述


2021-6-29 更新,初学docker


docker命令

  1. docker常用命令
  • 显示帮助信息
docker version      # 显示docker版本信息
docker info         # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help  # 帮助命令
  • 1
  • 2
  • 3

帮助文档的地址:https://docs.docker.com/reference/

  • 镜像命令
docker images                 # 显示镜像
docker search 镜像名:版本号    # 搜索镜像
docker pull 镜像名:版本号      # 下载镜像
docker rmi 镜像名:版本号       # 删除镜像
  • 1
  • 2
  • 3
  • 4
  • 容器命令
docker run 镜像名     # 启动容器
docker ps      # 查看容器
# 参数,-a:all,所有容器;-q:quiet,只显示容器id
exit      # 推出容器,容器会停止运行
Ctrl+P+Q  #退出,但不停止容器运行
docker rm 容器id      # 删除容器
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 启动和停止容器
docker start 容器id     # 启动容器
docker restart 容器id   # 重启容器
docker stop 容器id      # 停止容器
docker kill 容器id      # 强制停止容器
  • 1
  • 2
  • 3
  • 4
  • 进入容器
docker exec -it 容器id bashShell  # 交互方式执行容器
docker attach 容器id      # 进入正在运行的容器
  • 1
  • 2
  • 将容器的文件拷贝到本地
docker cp 容器id:路径名 本地路径名
  • 1
  • 其他命令
docker run -d 镜像名    # 后台启动,需要有前台进程
# e. docker run -d centos /bin/sh -c "while true; do echo running; sleep 1; done"
docker run -it 镜像名 bashShell  # 交互式启动
# e. docker run -it centos /bin/bash
docker logs 容器id   # 查看容器日志 
# e. docker logs -tf --tail 10 dce7b96171bf
docker top 容器id     # 查看容器中进程信息ps
docker inspect 容器id # 查看容器元数据
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  1. 所有命令
     下面这张图就很好诠释了docker的命令:

在这里插入图片描述

  1. docker pull下载速度慢解决措施
[root@localhost ~]# mkdir -p /etc/docker
[root@localhost ~]# cat /etc/docker/daemon.json
{
 "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2021-7-1 更新docker命令,后序附上docker的操作练习题


示例

// dockerfile生成镜像
docker build -f ./test_file -t mycentos:0.1 .   // 根据名为test_file的dockerfile构建名为mycentos:0.1的镜像,当前路径为上下文

// 提交镜像
docker commit -a="author" -m="comment" 容器id 目标镜像名
// e. docker commit -a="adjaisd" -m="test" ec4b test_tomcat:1.0

// 卷技术同步本地与容器
docker run -it -v 主机目录,容器内目录
// e. docker run -it -v /home/ubuntu/workspace/:/home/ centos /bin/bash
// e. docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql1 mysql:5.7

// 其中-v后的格式可以有以下组成:
// -v 容器内路径    # 路径挂载
// -v 卷名:容器内路径 # 具名挂载
// -v /宿主机路径:容器内路径  # 指定路径挂载

//docker网络的操作,留待之后用到集群的时候学习,下面给出一些示例
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
docker run -d -P --name tomcat1 --net mynet tomcat
docker exec -it 426 ping tomcat1
docker network connect mynet tomcat1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
// 登录百度的镜像仓库
docker login --username=[ username ] registry.baidubce.com
// e. docker login --username=5c7c1fddee7344a79f8528eb782e12ee registry.baidubce.com

// 提交百度新建的镜像
docker tag [ImageId] registry.baidubce.com/[namespace]/[ImageName]:[镜像版本号]
docker push registry.baidubce.com/[namespace]/[ImageName]:[镜像版本号]

// 登录腾讯的镜像仓库
docker login --username=[username] ccr.ccs.tencentyun.com
// e. docker login --username=100017398854 ccr.ccs.tencentyun.com

// 提交腾讯新建的镜像
docker tag [ImageId] ccr.ccs.tencentyun.com/[namespace]/[ImageName]:[镜像版本号]
docker push ccr.ccs.tencentyun.com/[namespace]/[ImageName]:[镜像版本号]

// 登出
docker logout
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

实战-网站迁移到云服务器上

 网站就用静态网页展示

  1. 在云服务器新建目录并准备文件
mkdir /server/nginx/www
mkdir /server/nginx/conf
mkdir /server/nginx/logs
git clone https://gitee.com/adjaisd/adjaisd.git // 然后输入帐号密码
cp ./adjaisd/* /server/nginx/www/
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 启动nginx

 这里通过卷同步,将本地文件同步到容器中,需要同步的文件分别为:
/usr/share/nginx/html
/etc/nginx/nginx.conf
/var/log/nginx nginx

docker run -d -p 9091:80 --name nginx01 -v /server/nginx/www/:/usr/share/nginx/html -v /server/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /server/nginx/logs:/var/log/nginx nginx
  • 1
  1. 通过公网+端口访问网站

设置开机自启动

 可以参考知乎

  1. 首先创建一个文件,内容如下
root@adjaisd:~/workspace# cat auto_run.sh 
docker run -d -p 9091:80 --name nginx01 -v /server/nginx/www/:/usr/share/nginx/html -v /server/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /server/nginx/logs:/var/log/nginx nginx
  • 1
  • 2
  1. 接着写一个脚本,内容如下
root@adjaisd:~/workspace# cat auto_run_script.service 
[Unit]
Description=Run a Custom Script at Startup
After=default.target

[Service]
ExecStart=/root/workspace/auto_run.sh 

[Install]
WantedBy=default.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  1. 然后将该文件放在/etc/systemd/system/下
root@adjaisd:~/workspace# cp ./auto_run_script.service /etc/systemd/system/
root@adjaisd:~/workspace# cat /etc/systemd/system/auto_run_script.service 
[Unit]
Description=Run a Custom Script at Startup
After=default.target

[Service]
ExecStart=/root/workspace/auto_run.sh 

[Install]
WantedBy=default.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  1. 最后设置开机自动执行这个脚本
root@adjaisd:~/workspace# systemctl daemon-reload 
root@adjaisd:~/workspace# systemctl enable auto_run_script.service 
Created symlink /etc/systemd/system/default.target.wants/auto_run_script.service → /etc/systemd/system/auto_run_script.service.
root@adjaisd:~/workspace# reboot
  • 1
  • 2
  • 3
  • 4

2021-7-8 更新


配置远程NoteBook

docker pull continuumio/anaconda3
docker run -i -t continuumio/anaconda3 /bin/bash
docker run -i -t -p 8888:8888 continuumio/anaconda3 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && mkdir /opt/notebooks && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser"
  • 1
  • 2
  • 3

配置mysql

docker run -p 3306:3306 --name mysql01 --restart=always -v /etc/localtime:/etc/localtime -v /
data/mysql/log/:/var/log/mysql -v /data/mysql/data:/var/lib/mysql -v /data/mysql/mysql-files:/var/lib/mysql-files -v /data/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=12345 -d mysql
  • 1
  • 2

2021-07-15 更新,感谢观看-


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/605607
推荐阅读
相关标签
  

闽ICP备14008679号